asispts / ptscs
带有附加严格规则的PSR-12编码标准
v2.1.0
2023-11-10 14:12 UTC
Requires
- php: >=7.2
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.7
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^8.5.14|^9.5|^10.0
README
ptscs
» 带有附加严格规则的PSR-12编码标准 «
ptscs
是一个遵循PSR-12并附加严格规则的PHP_CodeSniffer编码标准。它的目的是帮助开发者在代码库中保持一致性和可读性,并鼓励最佳实践。
安装
您可以使用composer进行安装
composer require --dev asispts/ptscs
使用
安装后,您可以创建一个phpcs.xml.dist
文件来定义您的PHPCS配置,然后配置您的文本编辑器或工作流程,根据此配置进行代码库的代码检查或修复。以下是一个示例的phpcs.xml.dist文件
<?xml version="1.0" encoding="UTF-8"?> <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd"> <arg name="colors"/> <arg name="parallel" value="8"/> <arg value="psv"/> <arg name="extensions" value="php"/> <file>src</file> <file>tests</file> <exclude-pattern>vendor</exclude-pattern> <rule ref="ptscs"/> </ruleset>
您可以使用phpcs
来验证源代码是否符合此标准,或使用phpcbf
来自动修复任何违规。
要运行phpcs
,请执行以下命令
vendor/bin/phpcs
要自动修复任何编码标准违规,请执行以下命令
vendor/bin/phpcbf
排除某些规则
您可以通过修改phpcs.xml.dist
文件来排除某些规则。例如,如果您想排除在Symfony项目的src/Entity
目录中要求类必须声明为final
或abstract
的规则,您可以在您的phpcs.xml.dist
文件中添加以下内容
<rule ref="SlevomatCodingStandard.Classes.RequireAbstractOrFinal"> <exclude-pattern>src/Entity</exclude-pattern> </rule>
这将排除src/Entity
目录的RequireAbstractOrFinal
规则。您可以根据需要自定义规则和目录。通过排除某些规则,您可以自定义编码标准,使其更好地满足项目需求。
显著的编码标准
如前所述,此编码标准使用PSR-12,并有一些例外和附加的严格规则。以下是一些显著的附加严格规则。
- 我们排除了一些PSR-12规则,以允许将
declare(strict_types=1)
放在PHP开放标签的同一行上。
<?php declare(strict_types=1)
- 所有PHP文件都需要包含
declare(strict_types=1)
。 - 测试方法名称允许使用
snake_case
。
public function test_something(): void { }
- 所有类都应声明为
final
或abstract
。
// Prohibited. // Should be declared as either final or abstract class foobar { }
- 文件名必须与类名匹配。
完整的规则集可以在RULES.md文件中查看。这些规则旨在促进更清洁、更可读、更易于维护的代码。
贡献
我们欢迎社区以各种形式做出贡献。您可以报告问题、提出改进建议或提交拉取请求。
对于重大更改,强烈建议首先打开一个问题,与项目维护者讨论拟议的更改。
许可
在MIT许可证下发布。