laminas/laminas-coding-standard

Laminas 编码标准

资助包维护!
社区桥梁

安装次数: 892 160

依赖者: 458

建议者: 0

安全: 0

星标: 32

关注者: 19

分支: 17

公开问题: 7

类型:phpcodesniffer-standard

2.5.0 2023-01-05 15:53 UTC

README

Build Status

🇷🇺 俄罗斯公民

我们,Laminas 的参与者,来自不同的国家。我们中许多人有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人在俄罗斯出生。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与法西斯作战。这里没有人支持法西斯主义。

我们中的一位成员有一个乌克兰亲戚,她带着儿子逃离了家园。火车因为前方的轰炸而延误。我们有一些朋友在防空洞里躲藏。我们在空袭后焦急地等待他们的消息,空袭无差别地轰炸医院、学校、幼儿园和住宅。我们不是从任何媒体中得知这些。这是我们的亲身经历。

您对我们足够信任,使用我们的程序,我们请求您再次信任我们。我们需要帮助。走出家门,抗议这场毫无意义的战争。停止血腥。说“不,战争!”

🇺🇸 致俄罗斯公民

Laminas 的我们来自世界各地。我们中许多人有在俄罗斯和乌克兰的朋友、家人和同事。我们中的一些人在俄罗斯出生。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与纳粹作战。这里没有人支持法西斯主义。

我们团队中的一位成员有一个乌克兰亲戚,她带着儿子逃离了家园。火车因为前方的轰炸而延误。我们有一些朋友在防空洞里躲藏。我们在空袭后焦急地等待他们的消息,空袭无差别地轰炸医院、学校、幼儿园和住宅。我们不是从任何媒体中得知这些。这是我们的亲身经历。

您对我们足够信任,使用我们的软件。我们请求您在这件事上信任我们。我们需要您的帮助。走出家门,抗议这场无意义的战争。停止杀戮。说“停止战争!”

Laminas 组件的编码标准规则集。

本规范扩展并扩展了 PSR-12,扩展编码风格指南,并要求遵守 PSR-1,基本编码标准。这些都是最小规范,并不涵盖所有因素,包括如下内容:

  • 操作符周围的空白
  • 数组键和操作符的对齐
  • 对象操作的对齐
  • 如何格式化多行条件
  • 要导入什么和不导入什么,以及如何导入
  • 等等。

贡献者有不同的编码风格,维护者也是如此。在代码审查期间,经常讨论空格和对齐,何时说一个函数需要导入。这就是这个编码标准的作用:在一个组件和组件之间保持内部一致性。

安装

  1. 通过运行以下命令使用 composer 安装模块:

    composer require --dev laminas/laminas-coding-standard
  2. 将 composer 脚本添加到您的 composer.json

    "scripts": {
      "cs-check": "phpcs",
      "cs-fix": "phpcbf"
    }
  3. 在您的存储库的基本路径上创建名为 phpcs.xml 的文件,并使用以下内容:

    <?xml version="1.0"?>
    <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">
    
        <arg name="basepath" value="."/>
        <arg name="cache" value=".phpcs-cache"/>
        <arg name="colors"/>
        <arg name="extensions" value="php"/>
        <arg name="parallel" value="80"/>
    
        <!-- Show progress -->
        <arg value="p"/>
    
        <!-- Paths to check -->
        <file>config</file>
        <file>src</file>
        <file>test</file>
    
        <!-- Include all rules from the Laminas Coding Standard -->
        <rule ref="LaminasCodingStandard"/>
    </ruleset>

您可以在该文件中添加或排除某些位置。有关参考,请参阅:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset

用法

  • 仅运行检查

    composer cs-check
  • 自动修复许多代码规范问题

    composer cs-fix

忽略文件的部分

注意:在PHP_CodeSniffer版本3.2.0之前,使用了// @codingStandardsIgnoreStart// @codingStandardsIgnoreEnd。这些已经弃用,并在PHP_CodeSniffer版本4.0中将被移除。

禁用文件的部分

$xmlPackage = new XMLPackage;
// phpcs:disable
$xmlPackage['error_code'] = get_default_error_code_value();
$xmlPackage->send();
// phpcs:enable

禁用特定规则

// phpcs:disable Generic.Commenting.Todo.Found
$xmlPackage = new XMLPackage;
$xmlPackage['error_code'] = get_default_error_code_value();
// TODO: Add an error message here.
$xmlPackage->send();
// phpcs:enable

忽略特定违规

$xmlPackage = new XMLPackage;
$xmlPackage['error_code'] = get_default_error_code_value();
// phpcs:ignore Generic.Commenting.Todo.Found
// TODO: Add an error message here.
$xmlPackage->send();

开发

新规则或嗅探器可能不会在次要或错误修复版本中引入,而应始终基于develop分支,并排队等待下一个主要版本,除非被认为是现有规则的错误修复。

如果您想测试对Laminas组件或您自己的项目的更改,请使用composer全局安装您分叉的laminas-coding-standard。

$ composer global config repositories.laminas-coding-standard vcs [email protected]:<FORK_NAMESPACE>/laminas-coding-standard.git
$ composer global require --dev laminas/laminas-coding-standard:dev-<FORKED_BRANCH>

# For this to work, add this to your path: ~/.composer/vendor/bin
# Using `-s` prints the rules that triggered the errors so they can be reviewed easily. `-p` is for progress display.
$ phpcs -sp --standard=LaminasCodingStandard src test

请确保在测试后从您的全局composer.json文件中删除全局安装!!!

可以通过安装MkDocs并在本地运行mkdocs serve来预览文档。这将启动一个服务器,您可以在其中阅读文档。

参考

规则可以根据您的偏好在本地添加、排除或调整。有关如何执行此操作的信息,请参阅此处