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