应当更新PHP版本的原因

首先

随着项目的推进,我一直认为更新PHP版本是必要的,但并没有明确了解为什么需要升级版本,所以我思考了一下。

Contents

    1. 公式支援期限

 

    1. 性能提升

 

    1. 對新語法的應對

 

    1. 摘要

 

    參考文獻

公式支持期限和安全漏洞

PHP版本和支持期限清单

バージョン初回リリース最新リリース最新リリース日アクティブサポートセキュリティサポート8.02020/11/268.0.92021/07/292022/11/262023/11/267.42019/11/287.4.222021/07/292021/11/282022/11/287.32018/12/067.3.292021/07/012020/12/06(終了)2021/12/067.22017/11/307.2.342020/10/012019/11/30(終了)2020/11/30(終了)7.12016/12/017.1.332019/10/242018/12/01(終了)2019/12/01(終了)7.02015/12/037.0.332018/12/062017/12/03(終了)2018/12/03(終了)5.62014/08/285.6.402019/01/102017/01/19(終了)2018/12/31(終了)

支持期限和安全

即使使用的是已经过期的版本,也不会突然无法运行。
然而,当支持终止时,将没有安全支持,暴露给未修复的安全漏洞。

顺便提一下,在2016年,PHP存在超过100个安全漏洞,其中包括拒绝服务攻击、代码执行、溢出、内存破坏、跨站脚本攻击、目录遍历、绕过以及信息获取等问题。

了解和发现脆弱性。

关于与PHP相关的许多漏洞,每个漏洞都被分配了一个特定的识别号,称为CVE(共同漏洞和曝光)。可以利用这些CVE获取漏洞信息,通过CVE详情或者日本语言的JVN(日本漏洞通报)获取信息。
此外,还有一个名为FriendsOfPHP/security-advisories的PHP项目和库漏洞监视库似乎也存在。

脆弱性的应对措施 (Cuì ruò de duì cuò shī)

在自己的项目中,我们需要了解所使用的 PHP 库及其版本,并监视其安全漏洞,必要时切换到可进行安全处理的版本。

表现的提升

针对不同的PHP版本进行基准测试。

以下是在Laravel 8.21.0环境中进行验证的数据,包括版本7.3、7.4和8.0。
测试内容为在一个URL上同时连接15个用户,发送10,000个请求,结果应该是每秒请求数越多越好。
(详细的执行环境请参考参考文献)

スクリーンショット 2021-10-27 1.13.14.png

Laravel 8.21.0 PHP 7.3 的基准测试结果为:574.67 次请求/秒
Laravel 8.21.0 PHP 7.4 的基准测试结果为:602.15 次请求/秒
Laravel 8.21.0 PHP 8.0 的基准测试结果为:623.78 次请求/秒?

现在的结果是,相比于PHP 7.3,PHP 8.0在每秒执行的请求方面多出了8.54%。

其他性能提升功能

有时候,一些功能如PHP7.4中的Preloading和PHP8.0中的JIT,能够通过版本升级来加速应用程序。

对于新的语法规则所做的应对

通过语言的更新,可能会添加新的编码方式,从而进一步提高便利性或减少代码的负担。
然而,了解和不了解新的语法之间存在相当大的差异,主要有以下三个问题。

    • コードレビューができない

 

    • ライブラリの処理を追うことができなくなる

 

    ネット上の新しい情報が理解できない

总结

即使是旧版本的PHP,也不会突然导致应用程序无法运行。

    • セキュリティサポートが終了してしまうと脆弱性の対策ができない。

 

    • パフォーマンス改善の機会を失う。

 

    新文法の記述を知ることができないです。

参考资料

    • PHPのリリース日とサポート期限

 

    • PHP における脆弱性との向き合い方とその対策方法

 

    • PHP 5.6、7.0、7.1、7.2、7.3、7.4または8.0のベンチマーク(2021年)

 

    • PHPのサポートされているバージョンを使用する理由について

 

    1. CVE Details(引用)
广告
将在 10 秒后关闭
bannerAds