stesie/phpcs-doctrine-annotation-rules

针对 Doctrine ORM 注释的 PHP Code Sniffer 扩展嗅探器。

1.2.0 2017-10-12 11:19 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:24:06 UTC


README

Build Status Coverage Status PHPStan

Doctrine 注释编码标准为 PHP_CodeSniffer 提供了一些额外的嗅探器,专注于 Doctrine ORM 的 DocBlock 注释。

此标准中包含的嗅探器

🔧 = 自动错误修复

DoctrineAnnotationCodingStandard.Commenting.ImplicitNullableJoinColumn

适用于映射为 @ORM\ManyToOne@ORM\OneToOne 的属性的 DocBlocks。

  • 检查是否存在缺失的 @ORM\JoinColumn 注释
  • 如果存在 @ORM\JoinColumn,则检查是否隐含假设 nullabletrue

@ORM\JoinColumnnullable 默认值为 true(与 @ORM\Column 相反),许多开发者并不知道这一点,因此在应该没有可空关联的地方创建了可空关联。此嗅探器确保显式地做出可空选择。

DoctrineAnnotationCodingStandard.Commenting.VarTag 🔧

适用于 Doctrine 映射属性的所有 DocBlocks。

  • 检查是否存在缺失的 @var 标签
  • 检查 @var 标签声明的类型与实际类型(根据 Doctrine 映射)

此嗅探器支持通过 phpcbf 自动修复。

嗅探器提供了以下设置

  • doctrineExtraTypes:自定义 Doctrine 类型列表,映射为字符串(而不是对象)

可以通过 ruleset.xml 如下配置

    <rule ref="DoctrineAnnotationCodingStandard.Commenting.VarTag">
        <properties>
            <property name="doctrineExtraTypes" type="array" value="CustomerType,CompanySizeType" />
        </properties>
    </rule>

安装

安装 Doctrine 注释编码标准的推荐方式是通过 Composer

$ composer require --dev stesie/phpcs-doctrine-annotation-rules

请注意,这并不是一个完整的编码标准,它只是通过额外的 Doctrine 注释检查来增强现有的标准。如果不清楚,强烈建议查看 Slevomat 编码标准

整体使用标准

只需在 ruleset.xml 中提及此(附加)标准即可

<?xml version="1.0"?>
<ruleset name="AcmeProject">
	<rule ref="vendor/stesie/phpcs-doctrine-annotation-rules/src/DoctrineAnnotationCodingStandard/ruleset.xml" />
	<!-- additional standards like slevomat -->
</ruleset>

要检查代码库中的违规情况,请从命令行运行 PHP_CodeSniffer

vendor/bin/phpcs --standard=ruleset.xml --extensions=php -sp src tests

自动修复错误

此标准中标记为 🔧 符号的嗅探器支持 自动修复编码标准违规。要自动修复代码,请运行 phpcbf 而不是 phpcs。

vendor/bin/phpcbf --standard=ruleset.xml --extensions=php -sp src tests