历经多年酝酿PHP 8.4终于引入属性挂勾

PHP社群正式发布最新版本,这两项功能可以带来明显的效能提升和开发灵活性。

属性挂勾是这个版本的代表性新功能,让开发者可以为属性定义特定的行为逻辑,像是存取或是设定属性时,可以直接加入检查或是转换的过程,而不需要编写额外的辅助方法。过去开发者需要借由魔术方法,例如__get和 __set实现类似的功能,但这种特殊的方法不仅难以阅读,还会对效能造成负面影响。

而属性挂勾的加入不仅解决这些问题,也能够被用于更多创新场景中,像是开发者可以简单定义虚拟属性,让程式逻辑更直觉且接近自然语言表达,进一步改进程式码的可维护性和协作效率。

另一个受到关注的新功能是非对称可见性,提供属性存取控制更大的灵活性,允许开发者区分属性的读取和写入权限,例如在部分应用中,属性可设为公开读取但限制写入,现在透过简单语法即可实现,无需额外的辅助方法。非对称可见性简化了程式码逻辑,并且提升资料完整性和安全性,可对API开发和用户资料保护等场景提供更细致的控制。

官方指出,这些功能的实作历经数年的技术与设计探索。属性挂勾的构想甚至可溯及2009年,该功能经过多次提案都未获足够的支持,一直到PHP基金会的资助与协作才成功实现。在开发过程也经过多次修改和讨论,并且从C#、Swift和Kotlin等现代语言的设计汲取灵感,使该功能更加符合PHP生态。而非对称可见性的提案也是在2023年投票失败后,于2024年重新来过,终于取得压倒性票数,成为PHP语法重要的现代化功能。

除了属性挂勾与非对称可见性,PHP 8.4在效能和相容性也大有进展,像是DOM扩展全面支援HTML5,提升解析准确性并加入CSS选择器功能。BCMath扩充新增运算子多载支援,使得代数运算更加直觉。同时,PHP 8.4中OpenSSL等底层相依套件也进一步升级,强化了安全性和稳定性。

PHP 8.4能够顺利实现多项重要更新,很大程度是因为PHP基金会的支援。PHP基金会是2021年成立的非营利组织,专注向PHP语言开发提供长期稳定的资金和技术支援,其透过资助Ilija Tovilo等核心开发者,解决过去因资源匮乏而导致功能开发中断的问题。