Polymorphine 库的开发工具和编码标准脚本
0.4.1
2023-07-05 04:09 UTC
Requires
- php: ^7.4 || ^8.0
- friendsofphp/php-cs-fixer: 3.9.*
- phpunit/phpunit: ^9.5.21
- shudd3r/skeletons: ^1.0.0
- squizlabs/php_codesniffer: ^3.7.1
README
Polymorphine 库的开发工具和编码标准脚本
- PHPUnit 测试库。
- 将 PHP-CS-Fixer 和 CodeSniffer 结合使用,并添加自定义设置作为 Polymorphine 包的开发依赖。
- 使用 Skeletons 引擎编写的包骨架脚本。
使用 Composer 安装
composer require --dev polymorphine/dev
PHP-CS-Fixer
PHP-CS-Fixer
会自动修复代码格式,而 CodeSniffer
会检查需要手动调整的样式错误,例如:命名约定、行长度和一些 phpDoc 约束。
Fixer 需要项目作用域配置来设置工厂,其中包含文件 docBlock 标头中使用的包名称以及其根目录的绝对路径。将类似于此包提供的 cs-fixer.php.dist
配置文件添加到项目的根目录。
使用此命令运行给定文件或目录(路径)的修复器
vendor/bin/php-cs-fixer fix -v --config=cs-fixer.php.dist --using-cache=no --path-mode=intersection path
CodeSniffer
CodeSniffer
工具仅用于 Fixer 的限制。并非每个样式约束违规都可以自动修复,因此此工具会通知您需要手动修复的不一致之处。
phpcs.xml
文件是使用此包作为 composer 依赖项的所有项目的配置(在默认 vendor 目录中)。然而,运行 CodeSniffer 的控制台命令需要此配置文件的绝对路径。例如,GitHub Action 命令可以使用 $GITHUB_WORKSPACE
环境变量构建绝对路径。
vendor/bin/phpcs --extensions=php --standard=$GITHUB_WORKSPACE/vendor/polymorphine/dev/phpcs.xml path
IDE 设置(PhpStorm)
PHP-CS-Fixer
使用 设置 > 工具 > 外部工具
配置 php-cs-fixer
环境
程序:
添加vendor/bin/php-cs-fixer
的路径(对于 Windows:vendor/bin/php-cs-fixer.bat
)参数:
添加命令以修复当前打开的项目文件
如果您想添加另一个带有检查命令的工具条目,则上述命令需要额外的fix -v --config=cs-fixer.php.dist --using-cache=no --path-mode=intersection "$FileDir$\$FileName$"
--dry-run
开关。工作目录:
设置为$ProjectFileDir$
- 在
设置 > 快捷键 > 外部工具
中添加键盘快捷键以运行命令
Code Sniffer
Code sniffer 不会自行更改代码,因此最好将其设置为其中一个检查项
- 在
设置 > 语言 & 框架 > PHP > Code Sniffer
中添加本地phpcs
脚本的路径 - 在
设置 > 编辑器 > 检查 > PHP Code Sniffer 验证
中设置自定义规则集,并使用此包提供的phpcs.xml
文件的绝对路径,该文件作为项目依赖项位于vendor/polymorphine/cs/
目录中,并且 composer 的自动加载脚本在两级之上。
CodeSniffer 自定义 PhpDoc 要求
- 原始的公开方法签名需要phpDoc块注释(其内容不会被检查)。原始方法是引入新签名的那个方法——它既不覆盖父类的方法,也不为接口定义的方法提供实现。在特质的情形下,每个方法都被视为原始方法。
- PhpDoc中的
@param
和@return
标签,如果类型为callable
或Closure
,则需要额外的描述,格式类似于简短的lambda表示法——例如/** * @param Closure $callback fn(Param1Type, Param2Type) => ReturnType * * @return callable fn(bool) => \FQN\Return\Type */