webservco / coding-standards
基于PSR12、SlevomatCodingStandard和PHPCompatibility的自定义、有见地的编码规范。
v0.0.15
2024-09-17 18:33 UTC
Requires
- php: ^7.4||^8.1
Requires (Dev)
- pds/skeleton: ^1
- phan/phan: ^5
- php-parallel-lint/php-console-highlighter: ^1
- php-parallel-lint/php-parallel-lint: ^1
- phpcompatibility/php-compatibility: ^9
- phpmd/phpmd: ^2
- phpstan/phpstan: ^1
- phpstan/phpstan-phpunit: ^1
- phpstan/phpstan-strict-rules: ^1
- phpunit/phpunit: ^10
- slevomat/coding-standard: ^8
- squizlabs/php_codesniffer: ^3
- vimeo/psalm: ^4
README
一组编码规范和配置文件。
基于 PSR12、SlevomatCodingStandard 和 PHPCompatibility 的自定义、有见地的编码规范。
安装
composer require --dev webservco/coding-standards
可选地,安装你项目中希望使用的来自 require-dev
的任何依赖。
组件
Phan
使用方法
vendor/bin/phan --config-file vendor/webservco/coding-standards/phan/config.php
PHP_CodeSniffer
示例配置文件 .phpcs/php-coding-standard.xml
,放置在自己的项目中
<?xml version="1.0"?> <ruleset name="WebServCo-CodingStandard-PHP83"> <description>Custom, opinionated coding standards based on PSR12, SlevomatCodingStandard, and PHPCompatibility.</description> <rule ref="vendor/webservco/coding-standards/phpcs/ruleset-psr-php83-slevomat.xml"> <properties> <property name="rootNamespaces" type="array"> <element key="src/Project" value="Project" /> <element key="tests/unit" value="Tests" /> </property> </properties> </rule> </ruleset>
使用方法
vendor/bin/phpcs --standard=.phpcs/php-coding-standard.xml --extensions=php -sp bin config public resources src tests
规则集
phpcs/ruleset-namespaces.xml
:Slevomat命名空间使用;phpcs/ruleset-psr-php74-slevomat.xml
:PHP 7.4,PSR-12,Slevomat;phpcs/ruleset-psr-php81.xml
:PHP 8.1,PSR-12;phpcs/ruleset-psr-php81-slevomat.xml
:PHP 8.1,PSR-12,Slevomat;phpcs/ruleset-psr-php82.xml
:PHP 8.2,PSR-12;phpcs/ruleset-psr-php82-slevomat.xml
:PHP 8.2,PSR-12,Slevomat;phpcs/ruleset-psr-php83.xml
:PHP 8.3,PSR-12;phpcs/ruleset-psr-php83-slevomat.xml
:PHP 8.3,PSR-12,Slevomat;
PHPMD
使用方法
vendor/bin/phpmd bin,config,public,resources,src,tests json vendor/webservco/coding-standards/phpmd/phpmd-rule-set.xml
PHPStan
使用方法
vendor/bin/phpstan analyse bin config public resources src tests --ansi -c vendor/webservco/coding-standards/phpstan/phpstan.neon --level=max
PHPUnit
Composer 脚本示例
{ "scripts": { "test" : "XDEBUG_MODE=coverage vendor/bin/phpunit --colors=always --configuration vendor/webservco/coding-standards/phpunit/phpunit-10.xml --display-deprecations --display-errors --display-incomplete --display-notices --display-skipped --display-warnings", "test:dox" : "@test --testdox" } }
使用方法
ddev xdebug on clear && ddev exec XDEBUG_MODE=coverage composer test:dox
Psalm
使用方法
vendor/bin/psalm --config=vendor/webservco/coding-standards/psalm/psalm.xml --no-diff