phpstan wordpress
ver
重要的
大家好!這是維克多(Viktor),他運行了這個phpstan擴展名。我計劃停止為WordPress生態系統做出貢獻,因為這非常困難,沒有人要求我加入他的團隊,因為我是一個思想家,一個Devops的人,工具製造商(不是建造者)。
請支持我的工作,以避免放棄此包裹。
謝謝你!
WordPress生態系統的靜態分析。
php-stubs/wordpress-stubs軟件包。php-stubs/wordpress-stubs功能apply_filters()和do_action()調用之前驗證可選的DocBlocks,將第一個@param的類型視為確定性。 要使用此擴展名,請在作曲家中需要它:
composer require --dev szepeviktor/phpstan-wordpress如果您還安裝了phpstan/Extension-installer,那麼您將全部設置!
如果您不想使用phpstan/extension-installer ,請在項目的PHPSTAN配置中包含extension.neon :
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon 無需其他設置。 ?只需配置phpstan-例如 - 如下所示:
parameters :
level : 5
paths :
- plugin.php
- inc/有關更多詳細信息,請訪問PHPSTAN配置參考。
使用作曲家自動加載器或自定義自動加載器!
運行分析:
vendor/bin/phpstan analyze然後修復錯誤並GOTO 10 !
您在examples目錄中找到更多信息,例如examples/phpstan.neon.dist
有關特定的指導,請參閱WooCommerce存根。
apply_filters() dicblock的用法WordPress生態系統通常以非標準的方式使用PHPDOC Docblocks來記錄傳遞給apply_filters()參數。這是一個例子:
/**
* Filters the page title when creating an HTML drop-down list of pages.
*
* @param string $title Page title.
* @param WP_Post $page Page data object.
*/
$ title = apply_filters ( ' list_pages ' , $ title , $ page );此擴展程序讀取這些放置的模塊,並指示PHPSTAN根據第一個@param標籤將過濾器的返回類型視為確定的。在此示例中,phpstan將$title解釋為string 。
為了獲得最佳效果,請確保這些Docblocks中的第一個@param標籤準確。
class Name { ... }外部沒有其他代碼。inc/ Directory中存儲類。apply_filters()調用中。eval , extract , compact , list$a = '15'; if ($a) ...if需要布爾值),請參見變量處理功能WP_CLI::launch或WP_CLI::runcommand中啟用exit_error ,以提高可測試性。 WordPress使用條件函數和類定義來允許覆蓋。先前定義的sed命令將其排除函數存根。
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php