ose / magento-coding-standard
一套针对 Magento 的 PHP CodeSniffer 规则。
Requires
- php: >=7.3
- ext-dom: *
- ext-simplexml: *
- phpcompatibility/php-compatibility: ^9.3
- rector/rector: ^0.13.0
- squizlabs/php_codesniffer: ^3.6.1
- webonyx/graphql-php: ^15.0
Requires (Dev)
- phpunit/phpunit: ^9.5.8
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) 的完整文本。