ose/magento-coding-standard

一套针对 Magento 的 PHP CodeSniffer 规则。

安装量: 2,566

依赖者: 1

建议者: 0

安全性: 0

类型:phpcodesniffer-standard

32.0.3 2023-09-08 05:01 UTC

README

一组用于 PHP_CodeSniffer 工具的 Magento 规则。

在 Magento 2 网站内安装

要在您的 Magento 2 项目中使用,可以使用

composer require --dev magento/magento-coding-standard

由于安全原因,以这种方式安装时无法自动添加 Magento 标准的 phpcs。您可以通过在项目的 composer.json 中添加以下内容来实现这一点

"scripts": {
    "post-install-cmd": [
      "([ $COMPOSER_DEV_MODE -eq 0 ] || vendor/bin/phpcs --config-set installed_paths ../../magento/magento-coding-standard/)"
    ],
    "post-update-cmd": [
      "([ $COMPOSER_DEV_MODE -eq 0 ] || vendor/bin/phpcs --config-set installed_paths ../../magento/magento-coding-standard/)"
    ]
}

开发版安装

您可以通过克隆此 GitHub 仓库来安装 Magento Coding Standard

git clone git@github.com:magento/magento-coding-standard.git
cd magento-coding-standard
composer install

您还可以通过 Composer 安装独立的程序

composer create-project magento/magento-coding-standard --stability=dev magento-coding-standard

验证安装

命令应返回包括 Magento2 在内的已安装编码标准的列表。

vendor/bin/phpcs -i

用法

安装完成后,您可以从命令行运行 phpcs 来分析您的代码 MyAwesomeExtension

vendor/bin/phpcs --standard=Magento2 app/code/MyAwesomeExtension

自动修复问题

您还可以从命令行运行 phpcbf 来修复您的代码 MyAwesomeExtension,以解决诸如 "PHPCBF CAN FIX THE [0-9]+ MARKED SNIFF VIOLATIONS AUTOMATICALLY" 的警告

vendor/bin/phpcbf --standard=Magento2 app/code/MyAwesomeExtension

贡献

查看社区 贡献模式

贡献地点

  • 现有规则的文档。参见 ExtDN PHP CodeSniffer rules for Magento 2 作为良好的示例。
  • 现有规则的错误修复和改进。
  • 创建新的 PHP CodeSniffer 规则。
  • 关于新规则进行讨论(通过定期聊天或 GitHub 问题的讨论)。

如何贡献

1) 从查看 社区仪表板 开始。任何 Up for grabs 中的票据都是良好的起点。2) 如果不满意?创建三种类型之一的问题

  • 错误报告 - 在代码中找到错误?告诉我们!
  • 现有规则增强 - 知道如何改进现有规则?打开一个问题,描述如何增强 Magento 编码标准。
  • 新规则提议 - 知道如何改进 Magento 生态系统代码质量?请不要犹豫,提出建议。3) 问题将出现在 社区仪表板Backlog 列表中。一旦讨论并获得 accepted 标签,问题将出现在 Up for grabs 列表中。

测试

所有规则都应该由单元测试覆盖。每个 Test.php 类都应该有一个相应的 Test.inc 文件,以便根据 PHP_CodeSniffer 父类 AbstractSniffUnitTest 进行单元测试。您可以通过运行

vendor/bin/phpunit

此外,请确保分析器代码本身是根据 Magento 编码标准编写的

vendor/bin/phpcs --standard=Magento2 Magento2/ --extensions=php

ESLint

先决条件:Node.js (^12.22.0, ^14.17.0>=16.0.0)。

您需要运行以下命令来安装 package.json 文件中描述的所有必要包

npm install

您可以通过以下方式执行 ESLint

npm run eslint -- path/to/analyze

RECTOR PHP

magento-condign-standard 项目,您可以按照以下方式执行 rector php

vendor/bin/rector process Magento2 Magento2Framework PHP_CodeSniffer --dry-run --autoload-file vendor/squizlabs/php_codesniffer/autoload.php

应用的 rector 规则设置在配置文件中:rector.php

选项 --dry-run 显示找到的错误,但代码不会自动修复。

要为 magento 项目运行 rector,您需要

  • 指定 magento 路径和 magento 项目的自动加载文件
    vendor/bin/rector process MAGENTO_PATH --dry-run --autoload-file MAGENTO_AUTOLOAD_FILE
    

    示例

    vendor/bin/rector process magento2ce/app/code/Magento/Cms/Model --dry-run --autoload-file magento2ce/vendor/autoload.php
    

许可证

本分发中包含的每个 Magento 源文件均根据 OSL-3.0 许可证授权。

请参阅 LICENSE.txt 以获取 开放软件许可证第 3.0 版 (OSL-3.0) 的完整文本。