blitz-php / coding-standard
Blitz PHP 的官方编码规范,基于 PHP CS Fixer
Requires
- php: ^7.4 || ^8.0
- ext-tokenizer: *
- friendsofphp/php-cs-fixer: ^3.35
- nexusphp/cs-config: ^3.6
Requires (Dev)
- nexusphp/tachycardia: ^1.3
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
README
这个库包含了基于 PHP CS Fixer 和由 Nexus CS Config 驱动的 Blitz-PHP 的官方编码规范。规则灵感来源于 CodeIgniter
安装
您可以使用 Composer 将此库作为项目依赖项添加到您的项目中
composer require blitz-php/coding-standard
如果您只需要在开发过程中使用此库,例如运行项目测试套件,那么您需要将其添加为开发依赖项
composer require --dev blitz-php/coding-standard
配置
首先,在您的项目根目录下创建一个 .php-cs-fixer.dist.php
文件。
<?php use BlitzPHP\CodingStandard\Blitz; use Nexus\CsConfig\Factory; return Factory::create(new Blitz())->forProjects();
此最小配置将返回一个包含所有适用规则默认 PhpCsFixer\Config
实例的配置。然后,在您的终端中运行以下命令:
$ vendor/bin/php-cs-fixer fix --verbose
添加许可证头
默认配置不会在文件中配置许可证头。许可证头对于库的作者来说可能非常有用,以主张版权。要为您的 PHP 文件添加许可证头,您只需提供您的姓名和库的名称。作为可选操作,您还可以提供您的电子邮件地址和许可证开始年份。
<?php use BlitzPHP\CodingStandard\Blitz; use Nexus\CsConfig\Factory; -return Factory::create(new Blitz())->forProjects(); +return Factory::create(new Blitz())->forLibrary( + 'Blitz-PHP framework', + 'Blitz-PHP Foundation', + 'contact@blitz-php.com', + 2022, +);
提供规则和优先选项
激活的规则列表位于类 BlitzPHP\CodingStandard\Blitz
中。如果您认为某个规则不适用于您或您想修改它,您可以通过提供新的规则表单来修改 Factory::create()
的第二个参数。
同样,您可以通过使用可用的选项来进一步修改返回的 PhpCsFixer\Config
实例。所有可用的选项都由 Nexus CS Config 完全支持,并且只需在 Factory::create()
的第三个参数中提供键值对数组即可总结。
<?php use BlitzPHP\CodingStandard\Blitz; use Nexus\CsConfig\Factory; -return Factory::create(new Blitz())->forProjects(); +return Factory::create(new Blitz(), [], [ + 'usingCache' => false, +])->forProjects();
您可以查看此库的自身 .php-cs-fixer.dist.php
以获得灵感。有关所有可用选项的更详细文档,您可以在此处查看 这里。
贡献
欢迎所有形式的贡献!
鉴于这里的规则将在 Blitz-PHP 组织内部传播和使用,因此所有提出的规则和现有规则所做的更改都必须首先以概念证明 (POC) 的形式发送到 Blitz-PHP 的存储库,并可能修改其中的代码风格。一旦被接受,您就可以发送一个 PR 来应用这些规则。
许可证
此作品是在 MIT 许可证下开源的。