mobi/coding-standards

Mobiliteitsdiensten 编码标准

dev-master 2024-09-03 09:21 UTC

This package is auto-updated.

Last update: 2024-10-03 09:36:16 UTC


README

包含 Mobiliteitsdiensten Nederland 内使用的编码标准文件。它包括 php cs fixerphpstanphpmd 的编码标准。

安装

通过 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>