mage / magento-coding-standard
一套针对 Magento 的特定 PHP CodeSniffer 规则。
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-dom: *
- ext-simplexml: *
- magento/php-compatibility-fork: ^0.1
- phpcsstandards/phpcsutils: ^1.0.5
- rector/rector: ^1.2.4
- squizlabs/php_codesniffer: ^3.6.1
- webonyx/graphql-php: ^15.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
- yoast/phpunit-polyfills: ^1.0
README
针对 PHP_CodeSniffer 工具的 Magento 规则集。
在 Magento 2 网站内安装
要在您的 Magento 2 项目中使用,您可以使用
composer require --dev magento/magento-coding-standard
由于安全原因,以这种方式安装时,无法自动添加 phpcs 的 Magento 标准。您可以通过将以下内容添加到项目中的 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 [email protected]: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 可以自动修复 [0-9]+ 个标记的嗅探违规”的警告
vendor/bin/phpcbf --standard=Magento2 app/code/MyAwesomeExtension
贡献
请参阅社区 贡献模式。
贡献的地方
- 现有规则的文档。以 ExtDN PHP CodeSniffer 规则 for Magento 2 为例。
- 现有规则的错误修复和改进。
- 创建新的 PHP CodeSniffer 规则。
- 关于新规则讨论(通过定期在线会议或通过 GitHub 问题进行的讨论)。
如何贡献
- 从查看 社区仪表板 开始。任何在
Up for grabs
中的条目都是开始的好候选。 - 没有满足您的需求? 创建三种类型之一的问题
- 错误报告 - 在代码中发现了错误?告诉我们!
- 现有规则增强 - 知道如何改进现有规则?打开一个问题,描述如何增强 Magento Coding Standard。
- 新规则提案 - 知道如何提高 Magento 生态系统代码质量?请毫不犹豫地提出建议。
- 问题将出现在 社区仪表板 的
Backlog
列表中。一旦讨论并通过accepted
标签,问题将出现在Up for grabs
列表中。
测试
所有规则都应该由单元测试覆盖。每个 Test.php
类都应该有一个相应的 Test.inc
文件,以便基于 PHP_CodeSniffer 父类 AbstractSniffUnitTest
进行单元测试。您可以通过运行以下命令来验证您的代码
vendor/bin/phpunit
还要验证嗅探器代码本身是根据 Magento Coding Standard 编写的
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-coding-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项目的路径和autoload文件
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版(OSL-3.0)。