webservco/coding-standards

基于PSR12、SlevomatCodingStandard和PHPCompatibility的自定义、有见地的编码规范。

安装: 1,492

依赖: 44

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:phpcodesniffer-standard

v0.0.15 2024-09-17 18:33 UTC

This package is auto-updated.

Last update: 2024-09-17 19:19:42 UTC


README

一组编码规范和配置文件。

基于 PSR12SlevomatCodingStandardPHPCompatibility 的自定义、有见地的编码规范。

安装

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