PHP 5.6 EOL(停止安全性更新) -升級 PHP 7相容性檢查

PHP5-EOL

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和擴展,改善致命錯誤抵抗等等。

 

currently_supported_php_versions (1)

到目前為止,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以及它們的內容將不會被檢查。

 

指定最低級別

如果您設置了最低級別,則只會報告具有該嚴重級別或更高級別的問題, php7cc3個級別:“info”,”warning”和“error”。“info”保留供將來使用,與“警告”相同。

 

範例:

php7cc --level=error  /path/to/my/directory/

 

在這種情況下,只會顯示錯誤,但不會顯示警告。

 

指定輸出格式

有兩種輸出格式可用:plainjson

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" : {}

      }

   ]

}



 

還有其他一些活躍的項目:

  • php7mar – PHP 7遷移助理報告(MAR)。(推薦的)
  • phan  – 靜態分析儀。PHP 7檢查器。
  • phpstan – PHP靜態分析和兼容性檢查。
  • 還有開發人員的PHPStorm

例如,你用以下的東西運行phan

phan –project-root-directory –progress-bar -o phan.out

或者對於php7mar

php mar.php -f =“/ path / to / project / root /” –  r =“/ path / to / output /”

 

之後我們再來介紹 php7mar …. 待續

You may also like...

發佈留言