PHP 5.6 EOL(停止安全性更新) -升級 PHP 7相容性檢查
PHP 5.6和PHP 7.0今年公布了EOL!(2018)
PHP 5.6於2014年首次發布,2014年1月發布了alpha 1.由於主要的性能改進(phpng 然後合併到PHP 7),到2015年12月,PHP團隊開始鼓勵升級到PHP 7。提升它的效能,例如快速,支援64位元,刪除舊的和不支持的SAPI和擴展,改善致命錯誤抵抗等等。
到目前為止,PHP 7.3比PHP 7.0快25%
我們非常清楚PHP 7 至少比PHP 5.6快2倍。PHP 7自2015年底首次發布以來有多少改進?
PHP 7.3 Alpha比以前版本的PHP 7快得多。到目前為止,PHP 7.3是比PHP 5.6快3倍!
所以升級到PHP 7.3 是有可以有效地提升效能與速度的!
如何檢查PHP腳本是否與PHP 7相容 (php7cc不再支援了,對於還沒升到7.0的用戶可以先用這個檢測)
參考網站
PHP 7 Compatibility Checker: https://github.com/sstalle/php7cc
這個專案是專門用來檢查你的程式是否有不符合 PHP7 語法的,而且可以在 PHP 5.3.3 以上的環境即可執行
安裝 PHP 7 Compatibility Checker
最快的方法當然是透過 Composer 囉,指令如下:
composer global require sstalle/php7cc
使用方式
直接使用 php 執行 php7cc 即可
參數如下:
檢查單個文件或目錄,請將其名稱作為第一個參數傳遞。目錄以遞歸方式進行檢查。
因此,要檢查您可以運行的文件:
php7cc /path/to/my/file.php
要檢查目錄:
php7cc /path/to/my/directory/
檢查指定的副檔名
檢查目錄時,還可以指定要檢查的副檔名,以逗號分隔副檔名。預設狀況下,僅處理.php。
例如,如果要檢查.php,.inc和.lib文件,可以運行:
php7cc --extensions=php,inc,lib /path/to/my/directory/
排除文件或目錄
您可以指定要從檢查中排除的絕對路徑或相對路徑的列表。相對路徑相對於已檢查的目錄。
您可以指定要排除的絕對路徑或是相對路徑列表
因此,如果要排除vendor 與 test 目錄,可以執行如下指令:
php7cc --except=vendor --except=/path/to/my/directory/test /path/to/my/directory/
在這個例子中,目錄/path/to/my/directory/vendor, /path/to/my/directory/test以及它們的內容將不會被檢查。
指定最低級別
如果您設置了最低級別,則只會報告具有該嚴重級別或更高級別的問題, php7cc有3個級別:“info”,”warning”和“error”。“info”保留供將來使用,與“警告”相同。
範例:
php7cc --level=error /path/to/my/directory/
在這種情況下,只會顯示錯誤,但不會顯示警告。
指定輸出格式
有兩種輸出格式可用:plain和json。
output-format可以使用命令選項(-o) 來更改輸出格式:
php7cc -o json /path/to/my/directory/ | json_pp
輸出內容如下:
{ "summary" : { "elapsedTime" : 0.0060338973999023, "checkedFiles" : 3 }, "files" : [ { "errors" : {}, "name" : "/path/to/my/directory/myfile.php", "warnings" : [ { "text" : "String containing number in hexadecimal notation", "line" : 13 } ] }, { "warnings" : [ { "line" : 6, "text" : "Reserved name \"string\" used as a class, interface or trait name " } ], "name" : "/path/to/my/directory/myfile.php", "errors" : {} } ] }
還有其他一些活躍的項目:
例如,你用以下的東西運行phan:
phan –project-root-directory –progress-bar -o phan.out
或者對於php7mar:
php mar.php -f =“/ path / to / project / root /” – r =“/ path / to / output /”
之後我們再來介紹 php7mar …. 待續