eventjet / coding-standard
Eventjet 编码规范
3.17.0
2024-08-01 08:18 UTC
Requires
- php: ^8.1
- dealerdirect/phpcodesniffer-composer-installer: ^0.5 || ^0.6 || ^0.7 || ^1.0
- friendsofphp/php-cs-fixer: ^3.32
- slevomat/coding-standard: ^8.4
- squizlabs/php_codesniffer: ^3.6.1
- webimpress/coding-standard: ^1.1
Requires (Dev)
- phpunit/phpunit: ^10.2
This package is auto-updated.
Last update: 2024-09-01 08:33:49 UTC
README
PHP-CS-Fixer
基本用法
将以下.php-cs-fixer.dist.php
文件添加到项目的根目录
<?php declare(strict_types=1); use Eventjet\CodingStandard\PhpCsFixer\Config; return Config::basic();
这将创建一个基本配置,包含一个Finder
,该Finder包括.
中的所有内容,并排除vendor
。如果您需要更精细的目录指定,您可以传递一个自定义的Finder
<?php declare(strict_types=1); use Eventjet\CodingStandard\PhpCsFixer\Config; use PhpCsFixer\Finder; $finder = Finder::create()->in(['features', 'module', 'tests'])->exclude('tests/fixtures'); return Config::basic($finder);
更严格的规则
要使用严格规则,请使用strict
方法:
<?php declare(strict_types=1); use Eventjet\CodingStandard\PhpCsFixer\Config; return Config::strict();
严格规则强制执行可空类型的联合语法、特定的方法顺序以及到处使用尾随逗号。有关详细信息,请参阅此文件。
PHPCS
基本用法
将以下phpcs.xml
文件添加到项目的根目录
<?xml version="1.0"?> <ruleset> <rule ref="Eventjet"/> <file>src</file> <file>tests</file> </ruleset>
更严格的规则
还有一个更严格的规则集,该规则集强制设置类型提示和返回类型。
此嗅探器可能会引起问题:如果您实现了接口或拥有没有设置参数类型提示和返回类型的自定义接口,或者您正在使用遗留代码,强制执行此嗅探器会导致BC(向后兼容性)中断。此嗅探器也被设置为phpcs-only
,因此phpcbf
不会自动修复错误。
要使用此规则集,只需在您的 phpcs 规则引用中使用相应的规则名称而不是默认名称即可
<?xml version="1.0"?> <ruleset> <rule ref="EventjetStrict"/> <file>src</file> <file>tests</file> </ruleset>
排除嗅探器
对于某些文件
要排除某些文件集的嗅探器,请显式引用规则并添加排除模式
<rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint"> <exclude-pattern>*Interface.php</exclude-pattern> </rule>
在本地抑制嗅探器
要在代码中直接抑制嗅探器,请使用@phpcsSuppress
注解
/** * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @param int $bar */ public function foo($bar = 0): int { }
有关此内容的更多信息,请参阅此处。
排除整个嗅探器
您还可以完全排除一个嗅探器。
<?xml version="1.0"?> <ruleset> <rule ref="Eventjet"> <exclude name="SlevomatCodingStandard.Classes.ClassConstantVisibility"/> </rule> <file>src</file> <file>tests</file> </ruleset>