Symfony6 即将发布,方法参数返回值类型声明将成为必须

2021-09-18  by  

正文

根据 Symfony发布流程,每两年 Symfony 会同时发布一个分支的最后一个版本 (X.4) 和下一个分支的第一个版本 (Y.0)。这将发生在 2021 年 11 月底,届时 Symfony 5.4 和 Symfony 6.0 都将发布。

它们之间的主要区别在于 Symfony 5.4 仍将包含所有已弃用的功能。Symfony 6.0 删除了所有不推荐使用的功能。您需要先升级到 5.4,删除代码中的所有弃用,然后升级到 6.0。

这一次,Symfony 5.4 和 6.0 都将包含另一个可能对您的应用程序产生重大影响的更改:在方法的所有属性、参数和返回值中添加 PHP 类型。

以下是此更改对您的应用程序的影响的真实示例。如果您有一个实现 Symfony 的用户类UserInterface,您的代码可能会包含以下内容:

/ src/Entity/User.php
namespace App\Entity;

use Symfony\Component\Security\Core\User\UserInterface;

class User implements UserInterface
{
// ...

    public function getRoles()
    {
        // ...
    }
}

这在 Symfony 5.4/6.0 中不再正确。原因是 Symfonyarray在getRoles()方法中添加了返回类型。由于类型在 PHP 中的工作方式,这意味着您必须在代码中添加返回类型:

public function getRoles(): array
{
// ...
}

点评

新闻发布时间为2021年09月17日。6.0 版本发布时间预测在11月底。PHP8测试版的发布时间在2021年09月02日。 从时间点上来看,Symfony的版本跟随速度杠杠的。

这次的版本发布,最大的影响在于类型声明的多样性和严格程度上。这两点都是基于PHP8的新特性、新要求决定的。

PHP8 在类型支持上做了极大的丰富和支持,相较之前的版本而言,有质的提升,几乎不存在以往不够用,用的不爽的问题了。对于整个PHP生态来说,进行大范围的底层代码优化成为必须要做且可以做好的事情了。Symfony这次的版本的变化也是基于此来进行的。 很多人不免感叹,PHP就要变成强类型语言了。实际上不用太过于担心。

无论什么语言,类型本身就不可消除,弱类型只不过是语言在底层进行了转换。而选择强还是弱并不是最要紧的事情,最要紧的事情是可以解决人们的需求。如果你想你的PHP程序足够快的话,你应该去声明他,这样就省去了类型转换的时间。

按照现如今的力度和支持而言,如果还躺在舒适圈内,必然会格格不入。(可能我们要重新认识PHP了哦)

了解更多

  1. 为Symfony 6 准备你的应用程序和包
  2. Symfony 6:PHP 8 原生类型以及我们为什么需要你
  3. PHP新的特性了解

找到错别字了?本文档有什么问题么?分叉并编辑 它 !

CJayhe

谢谢您的赞赏~

使用微信扫描二维码完成支付

抱歉弹框打扰,系统检测到您今日累计浏览时长已达120秒。如果我们的项目对您有帮助,在 关闭窗口之前,希望能够阅读弹框内容,帮助我们变得更好。

一个成功的项目,实现功能只是基础,合理的架构,对资源的调度能力才是灵魂。 PHPZlc, 致力于在Symfony的基础上提供“知行合一”的项目开发方案。

如果您有关切问题和好的想法:

提交

如果您想帮助我们,可以为我们点亮星星,也可以提供资金支持。

您还可以通过以下渠道,关注我们,获取最新的框架动态,帮助项目获取人气,扩大影响力。

开源伙伴招募:https://phpzlc.com/blog/11.html

由于我们无法获取您是否已经是我们的会员了,所以此弹框每日都会弹出一次,关闭