Polymorphine 库的开发工具和编码规范脚本

0.4.1 2023-07-05 04:09 UTC

This package is auto-updated.

Last update: 2024-09-05 06:42:21 UTC


README

Latest stable release Build status Coverage status PHP version LICENSE

Polymorphine 库的开发工具和编码规范脚本

使用 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 的 callableClosure 类型需要类似短 lambda 表达式的格式化描述 - 示例
    /**
     * @param Closure $callback fn(Param1Type, Param2Type) => ReturnType
     *
     * @return callable fn(bool) => \FQN\Return\Type
     */