PHP摘要171(2020年1月1日至13日)


带有新闻和资料链接的新鲜选择。 在该发行版中:来自PHP Internals的4个新RFC和PHP 8中有趣的池请求,一部分有用的工具,播客,流等。

祝您阅读愉快!



PHP内部


  • [RFC]变量语法调整 - 统一变量语法RFC语法的许多不一致已在PHP 7中修复。 建议在PHP 8中修复一些取消引用的遗漏。
  • [RFC]静态返回类型 -类型声明上下文中的static表示后期静态绑定 。 建议使它有可能用作方法的返回类型。 方便于流体接口或静态构造函数。
    隐藏文字
     class Test { public function doWhatever(): static { // Do whatever. return $this; } } 
    对于类属性和方法参数,这是没有意义的,将不起作用。
  • [RFC]对象上的::类 -在PHP 8中,建议使从$object::class获取完整的类名成为可能,类似于现在Foo\Bar::class
  • [RFC]“使用全局函数/常量”语句 -如果使用的函数或常量没有前缀,则PHP将尝试首先在当前名称空间中找到它们,然后在全局中找到它们。 作者建议添加指令use global functions;use global consts; ,这将强制解释器默认情况下在全局空间中查找不带前缀的函数和常量。
  • [RFC]弱图 -接受报价,并且WeakMaps将在PHP 8中可用。

    池请求可以进行一些更改:
  • [PR]在可选选项之后弃用必需的参数 -在实现可选功能签名后,有关使用必需参数的警告:
     function test(FooBar $param = null, $param2) 

    以前这可能很有意义,但是可以使用可为空的类型编写function test(?FooBar $param, $param2)
  • [PR]检查来自特征的抽象方法签名 - 来自特征的抽象方法签名未经验证是否符合实现要求。 也就是说,此代码现在可以正常运行而不会出现错误:
    隐藏文字
     trait T { abstract function neededByTheTrait(int $a, string $b); } class C { use T; function neededByTheTrait(array $a, object $b) {} } 
    池请求可纠正此行为。
  • [PR]确保PHP魔术方法的签名正确 -在此PR中,实现了魔术方法签名的验证。 目前,仅适用于__toString()__clone() ,但是,例如,它可以正常工作:
    隐藏文字
     class Foo { function __get(int $name) {} } (new Foo)->{42}; 

工具



Symfony



拉拉韦尔



Zend /椎板



内容管理系统



学习资料




音频/视频



感谢您的关注!

如果您发现错误或不准确,请在PM中通知我。
问题和建议写在邮件推特上

有关PHP Digest Telegram Channel的更多新闻和评论。

发送链接
搜索所有摘要的链接
先前版本:PHP文摘第170号

Source: https://habr.com/ru/post/zh-CN483684/


All Articles