stesie / phpcs-doctrine-annotation-rules
针对 Doctrine ORM 注释的 PHP Code Sniffer 扩展嗅探器。
1.2.0
2017-10-12 11:19 UTC
Requires
- php: ^7.0
- doctrine/annotations: ^1.4
- doctrine/orm: ^2.5
- squizlabs/php_codesniffer: ^3.0
Requires (Dev)
- consistence/coding-standard: ^2.0
- jakub-onderka/php-console-highlighter: ^0.3.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- phpstan/phpstan: ^0.8.0
- phpunit/phpunit: ^6.0.3
- satooshi/php-coveralls: ^1.0
- slevomat/coding-standard: ^3.3
This package is not auto-updated.
Last update: 2024-09-15 03:24:06 UTC
README
Doctrine 注释编码标准为 PHP_CodeSniffer 提供了一些额外的嗅探器,专注于 Doctrine ORM 的 DocBlock 注释。
此标准中包含的嗅探器
🔧 = 自动错误修复
DoctrineAnnotationCodingStandard.Commenting.ImplicitNullableJoinColumn
适用于映射为 @ORM\ManyToOne
或 @ORM\OneToOne
的属性的 DocBlocks。
- 检查是否存在缺失的
@ORM\JoinColumn
注释 - 如果存在
@ORM\JoinColumn
,则检查是否隐含假设nullable
为true
@ORM\JoinColumn
的 nullable
默认值为 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