標籤:
php7推出了文法樹,於是靜態文法分析更方便了。
1、先安裝php7,到http://windows.php.net/下載php7帶openssl的。
2、修改php.ini,
extension=php_openssl.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
extension=php_pdo_sqlite.dll
前面的分號去掉,這一步是為了安裝composer。
3、安裝composer,我安裝失敗,直接下載composer.phar
建立一個批處理composer.bat
@echo off"%~dp0php.exe" "%~dp0composer.phar" %*
修改composer源為中國鏡像,
composer config -g repo.packagist composer http://packagist.phpcomposer.com
4、安裝php_ast模組,phan需要,把dll放到ext目錄,
extension增加一行
extension=php_ast.dll
5、安裝phan
開啟命令列切換到php7的目錄,運行
composer require --dev "etsy/phan:dev-master"
phan的詳細使用可參考
https://github.com/etsy/phan
6、分析項目
建立一個批處理,比如,先分析F:\work\src下的php代碼,再用sed刪除沒有用的提示。
@echo offset src=F:\work\srcset phIn=%src%\phan_in.txtset phOut=%src%\phan_out.txtfind %src% -type f -name "*.php" > %phIn%phan -f %phIn% -o %phOut%sed -i "/\Phalcon/d" %phOut%sed -i "/redis/d" %phOut%sed -i "/memcached/d" %phOut%sed -i "/vendor/d" %phOut%echo "語法檢查已完成,請查看%phOut%"@pause
find和sed在windows下沒有,不過有native的port,不需要cygwin和mingw
下載http://sourceforge.net/projects/unxutils/files/latest/download
和http://unxutils.sourceforge.net/UnxUpdates.zip。
解壓後,用UnxUpdates覆蓋UnxUtils\usr\local\wbin,取出sed和find即可。
7、可以為phan建立批處理和phan目錄平級,phan.bat
@echo off"%~dp0php.exe" "%~dp0phan\phan" %*
把php.exe所在目錄放入環境變數PATH裡,這樣可以配置一些ide,調用phan.bat檢查當前代碼。
phan—php文法靜態檢查在windows下的配置