polymorphine / dev
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 块注释(其内容不被检查)。原始方法是引入新签名的那个方法 - 它不覆盖父类的方法,也不提供接口定义的方法的实现。在 traits 的情况下,每个方法都被视为原始的。
- 带有
@param
和@return
标签的 PhpDoc 的callable
或Closure
类型需要类似短 lambda 表达式的格式化描述 - 示例/** * @param Closure $callback fn(Param1Type, Param2Type) => ReturnType * * @return callable fn(bool) => \FQN\Return\Type */