用於php_codesniffer靜態分析工具的插件,可添加有問題的變量使用分析。
VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable分析。瓦里亞分析。unset()中使用變量而未定義。 (嗅探代碼: VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedUnsetVariable分析。瓦里亞分裂。VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable分析。瓦里亞分析。$this , self::$static_member , static::$static_member在班級範圍外使用。 (嗅探代碼: VariableAnalysis.CodeAnalysis.VariableAnalysis.SelfOutsideClass毛細血管分析。selfoutsideclass或VariableAnalysis.CodeAnalysis.VariableAnalysis.StaticOutsideClass 。 可變分析需要PHP 5.4或更高的PHP和PHP CODESNIFFER版本3.5.6或更高版本。
這是最簡單的方法。
首先,如果尚未安裝項目,請安裝phpcodesniffer-composser-installer。這也將安裝PHPC。
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer require --dev dealerdirect/phpcodesniffer-composer-installer
然後安裝這些標準。
composer require --dev sirbrillig/phpcs-variable-analysis
然後,您可以通過在phpcs.xml文件中添加類似以下內容來包括嗅探。
<rule ref="VariableAnalysis"/>
在那之後應該工作!
按照其安裝說明(通過Composer,Phar File,Pear或Git Checkout)安裝PHP_CodesNiffer(PHPC)。
請確保php_codesniffer的版本符合我們的要求。
安裝變量分析。從variableanaliss最新版本頁面下載zip或tar.gz文件。將文件擴展並將結果目錄重命名為phpcs-variable-analysis 。將目錄移至您想要保持所有PHPC標準的地方。
將新安裝標準的路徑添加到php_codesniffer installed_paths配置中。以下命令應將新標準附加到您現有的標準(請確保為您上面創建的目錄提供實際途徑)。
phpcs --config-set installed_paths "$(phpcs --config-show|grep installed_paths|awk '{ print $2 }'),/path/to/phpcs-variable-analysis"
如果您沒有安裝任何其他標準,則可以更輕鬆地執行此操作(同樣,請確保提供實際路徑):
phpcs --config-set installed_paths /path/to/phpcs-variable-analysis
有多種選擇可以自定義可變分析的行為,請查看隨附的uluneet.xml.xml.xample,以獲取配置的註釋示例。
可用選項如下:
allowUnusedFunctionParameters (bool,默認false ):如果設置為true,則函數參數永遠不會被標記為未使用的。allowUnusedCaughtExceptions (bool,默認為true ):如果設置為true,則永遠不會將異常變量標記為未使用。allowUnusedParametersBeforeUsed (bool,默認為true ):如果設置為true,則未使用的函數參數,如果遵循使用的函數參數,將忽略它們。allowUnusedVariablesBeforeRequire (bool,默認為false ):如果設置為true,則在require之前定義的變量, require_once , include或include_once將不會標記為未使用。它們可能是針對所需的文件的。allowUndefinedVariablesInFileScope (bool,默認為false ):如果將文件的頂級範圍中的不確定變量設置為true,則永遠不會將其標記為未定義。這對於使用其他地方定義的許多全局變量的模板文件可能很有用。allowUnusedVariablesInFileScope (bool,默認為false ):如果將文件的頂級範圍中的未使用變量設置為True,則永遠不會將其標記為未使用。當定義許多在其他地方使用的全局變量時,這可能會有所幫助。validUnusedVariableNames (字符串,默認為null ):要分隔空間佔位符變量名稱的列表,您希望從未使用的變量警告中忽略。例如,要忽略變量$junk和$unused ,可以將其設置為'junk unused' 。ignoreUnusedRegexp (字符串,默認為null ):php Regexp String(請注意,這需要明確的定界數),您需要從未使用的變量警告中忽略的變量。例如,要忽略變量$_junk和$_unused ,可以將其設置為'/^_/' 。validUndefinedVariableNames (字符串,默認為null ):一個空間分隔的佔位符變量名稱的列表,您希望從未定義的變量警告中忽略。例如,要忽略變量$post和$undefined ,可以將其設置為'post undefined' 。這可以與validUndefinedVariableRegexp結合使用。validUndefinedVariableRegexp (字符串,默認為null ):php regexp字符串(請注意,這需要明確的分界符),以便您從未定義的變量警告中忽略的變量。例如,要忽略變量$post和$undefined ,可以將其設置為'/^(post|undefined)$/' 。可以將其與validUndefinedVariableNames結合使用。allowUnusedForeachVariables (bool,默認為true ):如果將foreach循環中的key => value語法設置為true,則永遠不會將其標記為未使用。sitePassByRefFunctions (字符串,默認為null ):自定義功能的列表,這些函數通過參考來初始化的變量(例如preg_match() ),因此不應要求提前定義這些變量。該列表是空間分開的,每個條目均為表單functionName:1,2 。該功能名稱首先出現,然後是結腸和逗號分隔的參數編號列表(從1開始),該列表應視為可變定義。特殊值...在參數列表中,將導致最後一個數字之後的所有參數被視為可變定義。allowWordPressPassByRefFunctions (bool,默認false ):如果設置為true,則將添加通用WordPress通過引用函數列表中的PHP列表,以便將允許將未定義的變量傳遞給這些函數(供參考初始化)。要設置這些選項,您必須在規則集中使用XML。有關詳細信息,請參閱PHPCS可自定義的嗅探屬性頁面。這是一個示例,忽略了以下劃線開頭的所有變量:
< rule ref = " VariableAnalysis.CodeAnalysis.VariableAnalysis " >
< properties >
< property name = " ignoreUnusedRegexp " value = " /^_/ " />
</ properties >
</ rule >這是從https://github.com/illusori/php_codesniffer-variaibleanalysis中的出色工作中分配的
請在此存儲庫上打開問題或PR。
任何更改都應伴隨測試,並應通過伸縮和靜態分析。請使用PHPDOC(而不是實際類型)進行聲明類型,因為這必須在PHP 5.4中運行。
要運行測試,請確保已安裝作曲家,然後運行:
composer install # you only need to do this once
composer test
要運行絨毛,請使用:
composer lint
要運行靜態分析,請使用:
composer phpstan