secl-group / phpcs-secl-standard
Secl Group应用PHP_CodeSniffer可维护性标准
Requires
Requires (Dev)
- phpunit/phpunit: ~4
This package is not auto-updated.
Last update: 2024-09-18 20:41:05 UTC
README
PHP_CodeSniffer可维护性标准,适用于Secl Group应用。
在项目开发过程中,随着新功能的实现变得越来越耗时且成本高昂的情况,可能大家都遇到过。遗憾的是,这种情况往往使得成本远远超过从功能实现中获得的潜在利益。
经过对多个项目的分析,软件改进小组(Software Improvement Group, SIG)的专家们开发了一套简单原则和规则,通过这些原则和规则可以使情况大大改善。其中一些原则可以轻松地在自动模式下进行控制。为此,为Java和C#等语言创建了专门的软件。我们提出了一种最简单的PHP开发自动控制的实现方式。在这种情况下,我们对这些基本原则进行了控制
- 函数不应超过15行代码;
- 函数的圈复杂度不应超过5;
- 函数不应超过4个输入参数。
在我们公司实施此类控制后,开发质量显著提高。因此,代码变得更加易于理解和维护。
我们向您提供了一个基本解决方案的自动控制选项。该标准可以轻松集成到版本控制系统。我们建议将其与其他公司的风格标准结合使用。
该项目基于Joost Visser在其著作Building Maintainable Software(ISBN 印刷版:978-1-4919-5352-5,ISBN 电子版:978-1-4919-5348-8)中提供的原则。有关软件可维护性的更多信息,我们建议您阅读此书。
安装
此编码标准可以通过composer安装,或在使用PHP_CodeSniffer安装PECL时使用。下面将描述这两种方法,但推荐使用composer的方法。
使用Composer
-
将标准作为基于composer的项目依赖项安装(它将安装PHP_CodeSniffer的composer版本作为依赖项)
$ php composer.phar require --dev secl-group/phpcs-secl-standard:~1.0.0
-
完成!
$ bin/phpcs --standard=vendor/secl-group/phpcs-secl-standard/secl-group/phpcs/Secl --extensions=php src/
使用PEAR
-
安装PHP_CodeSniffer
$ pear install PHP_CodeSniffer
-
找到您的PEAR目录
$ pear config-show | grep php_dir
-
将此存储库复制、创建符号链接或检出到phpcs
Standards
目录中的Secl
文件夹$ cd /path/to/pear/PHP/CodeSniffer/Standards $ git clone https://github.com/SECL-Group/phpcs-secl-standard Secl
-
如果您想将Secl设置为默认编码标准,请这样做
$ phpcs --config-set default_standard Secl
-
完成!
$ phpcs --standard=Secl --extensions=php src/
贡献
如果您为这些Sniffs贡献代码,请确保它符合PEAR编码标准,并且Secl-coding-standard单元测试仍然通过。
要检查编码标准,请在Secl-coding-standard源根目录下运行
$ phpcs --ignore=*/tests/* --standard=Secl . -n
对于单元测试
$ composer install
$ cp phpunit.xml.dist phpunit.xml
将链接到供应商目录,使用绝对路径 - 否则,请纠正链接!
$ mkdir /path/to/phpcs/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Secl
ln -sf /path/to/phpcs/Sniffs /path/to/phpcs/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Secl/Sniffs
ln -sf /path/to/phpcs/Tests /path/to/phpcs/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Secl/Tests
ln -sf /path/to/phpcs/ruleset.xml /path/to/phpcs/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Secl/ruleset.xml
ln -sf /path/to/phpcs/phpunit.xml /path/to/phpcs/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Secl/phpunit.xml
单元测试是在包含供应商目录的Secl目录下运行的。
$ vendor/bin/phpunit -c phpunit.xml vendor/squizlabs/php_codesniffer/tests/AllTests.php