PHP注释- 2021年8月
问候大家!
PHP 8.1已经到达了第二个测试版,更改列表已经完成。剩下要决定的最后一点是交集类型的可为空性,目前正在进行投票。
与此同时,PHP内部已经在讨论下一个版本的特性。继续阅读,了解PHP 8.2的前两个rfc,它将于2022年发布。
由于PHP 8.1将拥有纤程,两个流行的PHP异步框架已经同意联合起来共享抽象。
你可以在8月版的PHP注释中阅读更多关于这一新闻。像往常一样,我们为您精心挑选了一系列的文章、工具、视频和流媒体。
⚡️新闻
PHP 8.1.0, Beta 2
beta版的发布标志着PHP 8.1活跃开发阶段的结束,这意味着新特性和更改的列表可以被认为是最终的(除了可为空的交集类型)。第三个也是最后一个预计8月19日.
图像中彼得Kokot.那么PHP 8.1中会出现什么呢?
以下是一些最显著的变化:- 枚举(RFC).
- 一流的可调用的(RFC).
- 只读的属性(RFC).
- 初始化式中的New操作符(RFC).
- 全新的never类型用于返回值(RFC).
- 纤维(RFC).
- 类中的最终常量(RFC).
- 扩展运算符支持字符串数组键(RFC).
- 隐式非整型兼容浮点到int转换的弃用(RFC).
- 可序列化接口的弃用(RFC).
- 带有0前缀的显式八进制表示法(RFC).
- 限制使用$GLOBALS (RFC).
如果你想了解更多,请查看这个令人敬畏的汇编PHP 8.1“之前”和“之后”的例子。
布伦特·卢斯还有一份为期10天的时事通讯:PHP 8.1之路.
所有更改的完整描述可以在PHP上找到。看:php.watch /版本/ 8.1.
PHP。手表上也有一个贴子PHP 8.1中上传的目录-在PHP 8.1
带有_file美元
数组将包含一个带有来自用户的目录结构路径的full_path部分。这是支持目录上传所必需的。ReactPHP和Amp联手
通过在PHP 8.1中添加纤程,异步PHP代码可能会更简单、更漂亮一些。两个流行的异步PHP库的维护者宣布了RevoltPHP项目。他们计划创建一个公共事件循环,并在光纤上实现共享抽象。
随着8.1中的光纤,一个新的时代开始了# PHP.@AsyncPHP和@ReactPHP正在通过@RevoltPHP在共享事件循环和Fiber抽象上进行协作。请继续关注!pic.twitter.com/pv8q0WmmvG
-反抗PHP (@revoltphp)2021年8月9日
PhpStorm 2021.2已被释放
查看这篇博客文章,它包含了泛型支持、枚举、数组形状以及在这个版本中将要引入的所有其他内容的所有细节。
PHP 7.4.22,PHP 8.0.9
当前分支的安全性和bug修复更新。
PHP内部
[RFC] Nullable交集类型
在十字路口采用RFC后不久,Nikolas Grekas (Symfony core)发表了一条评论。他说如果没有使它们为空的能力,交点就没有那么有趣了。
从技术上讲,PHP 8.1分支已经冻结了,但是PHP团队决定为这个提议做一个例外。
类Foo {public (X&Y)|null $bar;函数setBar((X&Y)|null $bar = null): (X&Y)|null {return $this->bar = $bar;} }
语法选择也要进行投票:用户?
或(用户)| null
.在foreach后面打开引用
在PHP的当前版本中,没有专门的作用域
foreach
循环。这有一个非常违反直觉的结果:引用美元的价值
即使在foreach循环结束后,数组的最后一个元素仍然保留。这个问题很容易用下面的例子来说明:
$array = [0,1, 2];Foreach ($array as &$value){/*…*/} //不调用unset($value), // $value仍然指向最后一个元素:/ /前RFC: >阵列(3){[0]= > int (0) [1] = > int (1) [2] = > int(1)} / /后RFC: >数组(3){[0]= > int (0) [1] = > int (1) [2] = > int (2)}
这个RFC为这个逻辑上正确但看起来有缺陷的行为提出了一个修复。后foreach
循环时,引用美元的价值
将被删除。[RFC]从不用于参数类型
在PHP 8.1中将有一个新类型,
从来没有
,用于返回值。对于PHP 8.2,已经有一个建议可以使用从来没有
作为参数的类型。RFC的作者Jordan LeDoux认为
从来没有
将在抽象类和接口中有用。您可以使用它来指定必须以某种方式键入参数。这有助于模仿泛型的行为。然而,对于静态分析器和PhpStorm,你仍然需要求助于PHPDoc中的类型描述。
interface CollectionInterface {public function add(never $input): self;}类A实现CollectionInterface {public function add(int $input): self {}}
工具
- frontdevops / php-evil—要禁用的扩展
eval ()
.事实证明eval ()
不是函数,而是语言结构,所以呢disable_functions
将无助于阻止它。所以作者不得不写自己的微扩展。 - beyondcode /暴露2.0一个很酷的工具,可以将本地服务偷偷带入世界。这对于测试webhook或演示应用程序应该很有用。
- EcotoneFramework-一个有趣的服务总线,用于DDD、CQRS和PHP中的事件溯源。它工作在PHP 8+通过属性,与好的文档Laravel和Symfony的集成。这是一个例子一个CQRS实现。
- PHP-CSS-Parser-一个用PHP编写的CSS文件解析器。这允许将CSS文件提取到一个数据结构中,对该结构进行操作,并将输出作为(优化的)CSS。
- 诗篇4.9.0这是继作者Matt Brown之后的第一个社区版本,离开项目.
- ergebnis / composer-normalize-一个插件的作曲家,使
composer.json
文件看起来很漂亮。 - paragonie / paseto 2.0-无状态令牌,JWT的安全替代。
- chrome-php /铬v1.0.0-一个包控制铬/铬在无头模式。
- darsyn / ip-用于使用IP地址的不可变值对象,包括Doctrine的助手
- MadLisp-用PHP编写的Lisp解释器。
Symfony
- Symfony团队现在提供支持在讨论部分在GitHub上。
- 使用Varnish将Symfony Demo应用扩展到极致.
- Symfony锁:处理共享资源、并发和并行。
- 一种集中处理Doctrine/Symfony访问控制的方法.
- 如何在Doctrine中使用级联删除而不是丢失所有的数据。
- Symfony的一周#763(2021年8月9-15日).
Laravel
- Laracon在线- 9月1日。
- laravelexamples.com- Laravel从作者的有用的例子目录Laravel日常YouTube频道。
- LaravelDaily / Laravel-Roadmap-Learning-Path一个酷的Laravel培训材料收集所有经验水平。
- 在Laravel steam上开发一个应用.
- Laravel中的不可变日期.
- 15分钟内收集60+ Laravel方法.
- Laravel v8.53.0有什么新功能-查看更多视频Laravel YouTube频道.
Yii
- Yii框架团队继续为即将到来的Yii 3发布包:yiisoft /数据响应,yiisoft /视图,yiisoft / yii-view,yiisoft /梅勒.
PhpStorm
- i18n盟友-一个很好的PhpStorm插件,让翻译字符串变得容易。Laravel和Symfony可以自动配置,Yii、CodeIgniter和CakePHP也可以手动配置。
- 4.4 Laravel想法-插件的一个大更新。
- 来源跳水的PhpStorm Pest插件-酷流录音的地方奥利弗Nybroe演示如何开发PhpStorm插件。
Misc
- 我们不需要运行时类型检查- Brent Roose对PHP类型系统的有趣思考,引用了Sarah Golemon, Rasmus Lerdorf和Nikita Popov的话。下面是乔·沃特金斯对这个问题的另一种看法:
把类型从# PHP,甚至在运行时:
1)从根本上改变了PHP的动态特性
2)将使类型系统变得相当复杂
3)不能解决泛型实现的复杂性来源:我尝试。
这并没有发生……
——乔·沃特金斯(@krakjoe)2021年8月3日
- PHP对象多年来的演变
- 函数式编程和PHP 8-举例说明如何使用强大的力量loophp /把工具。
- phpschool。io: PHP 8-一个学习PHP 8的CLI工作坊。
- b-viguier / php-emoji- PHP数组函数解释与表情符号:
视频
- PHP 8.1的新功能-枚举-马塞尔·波西奥特(Marcel Pociot)的详细枚举之旅。
- 事件源完整课程- CQRS和事件溯源。
- PHP圆桌会议82-传奇的PHP播客回归。干杯萨米K欢迎新主人埃里克·范·约翰逊!
感谢阅读,我们希望你有一个美好的一天!
如果你有任何有趣或有用的链接通过PHP注释分享,请在这篇文章上留下评论或给我推特.
你的JetBrains PhpStorm团队
发展的动力