PHP做为Web界第三大词汇近一两年关注度不如,但这一两年的不断进步和高速成长却没受阻。在2022前不久,他们来一同自学呵呵现阶段PHP的现况和新一代版增添的优点。
PHP 8.1
PHP新一代的8.0版于天前正式发布。 尽管关键性变动不多,但有许多小优点的确值得称赞津津乐道。
隐式类别
隐式在PHP 8.1中内建全力支持:
enum Status { case draft; case published; case archived; public function color(): string { return match($this) { Status::draft => grey, Status::published =>green, Status::archived => red, }; } }缺省中的new
在 PHP 8.1 中,能在调用预设std的值、动态表达式、自上而下自表达式和优点std时采用捷伊函数。
class PostStateMachine { public function __construct( private State $state = new Draft(), ) { } }只读属性
只读属性为调用(即向其赋值)后无法更改的属性。
class CCData { publicfunction __construct(public readonly string $title, public readonly PostState $state, public readonlyDateTimeImmutable $publishedAt, ) {} }与PHP 8.0 的promote相结合,能用于构造一个很干净优雅的数据类。对比PHP 5.6要实现上面同样功能的相同类:
class CCData { private $title; private $state; private $publishedAt; public function __construct( $title, $state, $publishedAt = null ) { $this->title = $title; $this->state = $state;$this->publishedAt = $publishedAt; } public function getTitle() { return $this->title; } public function getState() { return $this->state; } public function getPublishedAt() { return $this->publishedAt; } }能看到明显的优势,有没?
PHP在每个版中会增添此类的这些很棒的语法小糖果改进。随着不断迭代改进,相信PHP会变得越来越优雅。
动态分析
PHP中的动态分析正在显著改善:
诸如Laravel一样的框架越来越多地采用动态类别 (编写代码和文档块的唯一目的是帮助动态分析);
PhpStorm 添加了对泛型全力支持,如果以编写泛型代码并让IDE理解它,那将非常有意义;
PhpStan and psalm也在不断完善。
异步PHP
异步社区中的一个令人兴奋的产业发展是,来自Amp和ReactPHP(两个主要的异步参与者)的开发人员齐心协力制作了一个号称与光纤速率相兼容的事件循环实现,称为 Revolt PHP。
与整个社区相比,异步PHP仅被一小部分人采用; 但,仍然能看到异步社区正在变得强大并拥抱现代PHP。
无服务器 PHP
无服务器是现代开发的一个方向和的确,PHP在该方面也没落后。Matthieu Napoli开发了一个无服务器框架Bref能让PHP开发人员了解这种相对较捷伊PHP采用方式,使无服务器 PHP 变得简单。
PHP基金会
两个月前,PHP世界传来了一个相当大的消息,甚至可能是2021年最大的消息:最活跃的核心维护者之一Nikita正在从事LLVM的工作,但同时也有一项新举措得到了几个人的全力支持大公司最终使核心产业发展可持续。
简而言之,PHP基金会是一个非营利组织,其唯一目标是资助PHP核心开发。该计划由JetBrains推动,他们已经向该项目承诺了100,000美元。现阶段已经筹集了329,920.75 美元;
这笔钱将用于资助核心开发,用于帮助PHP推广,让以前无法采用PHP的人们打开大门。
生态系统
提到PHP生态不得不说Packagist,现在有超过300万个注册版和超300的包。其生态系统不断产业发展壮大,2022 年也不例外。
另外,此前刚刚不久,Packagist 通过了处理超过500亿次安装的里程碑。