mobi / coding-standards
Mobiliteitsdiensten 编码标准
dev-master
2024-09-03 09:21 UTC
Conflicts
- php: <8.0
- friendsofphp/php-cs-fixer: <3.11
- phpmd/phpmd: <2.0
- phpstan/phpstan: <0.12.50
This package is auto-updated.
Last update: 2024-10-03 09:36:16 UTC
README
包含 Mobiliteitsdiensten Nederland 内使用的编码标准文件。它包括 php cs fixer、phpstan 和 phpmd 的编码标准。
安装
通过 Composer 将依赖项添加为(开发)依赖项。
composer require mobi/coding-standards:dev-master --dev
注意! 这样做并不会安装所有必需的工具。此包仅包含配置文件。
配置
PHP-CS-Fixer
向你的项目添加一个包含以下最小配置的 .php-cs-fixer.php 文件
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->path([
'/^app/',
'/^src/',
...
]);
/** @var PhpCsFixer\Config $config */
$config = include 'vendor/mobi/coding-standards/rules/php-cs-fixer.php';
return $config->setFinder($finder);
vendor/bin/php-cs-fixer fix --dry-run --diff --show-progress=dots --verbose
大多数可用的 php-cs-fixer 规则 可以用来调整预定义规则或添加额外规则
return $config->setFinder($finder)
->setRules(
array_merge($config->getRules(), [
'no_space_around_double_colon' => false,
])
);
注意:需要使用
array_merge($config->getRules(), [])来补充预定义规则。
PHPStan
向你的项目添加一个包含以下最小配置的 phpstan.neon 文件
includes:
- ./vendor/mobi/coding-standards/rules/phpstan.neon
parameters:
paths:
- app
- src
...
vendor/bin/phpstan analyze --memory-limit=2G
大多数可用的 phpstan 配置 可以用来调整预定义规则或忽略的潜在错误
parameters:
ignoreErrors:
- '#Parameter \#3 \$count of method Illuminate\\Database\\Eloquent\\Builder(.*)::has\(\) expects int, Illuminate\\Database\\Query\\Expression given.#'
checkUnionTypes: false
PHPMD
向你的项目添加一个包含以下最小配置的 phpmd.xml 文件
<?xml version="1.0"?>
<ruleset name="Mobiliteitsdiensten phpmd configuration"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation=" http://pmd.sf.net/ruleset_xml_schema.xsd">
<rule ref="vendor/mobi/coding-standards/rules/phpmd.xml" />
</ruleset>
vendor/bin/phpmd app src ... phpmd.xml
大多数可用的 phpmd 规则 可以用于配置,例如调整预定义规则或添加额外规则
<rule ref="vendor/mobi/coding-standards/rules/phpmd.xml" />
<rule ref="rulesets/codesize.xml/CyclomaticComplexity">
<priority>1</priority>
<properties>
<property name="reportLevel" value="5" />
</properties>
</rule>
<rule ref="rulesets/naming.xml">
<exclude name="LongVariable" />
</rule>