extdn / phpcs
一套PHP_CodeSniffer规则和嗅探器。
Requires
- php: >=7.0.0
- magento/marketplace-eqp: dev-master
- squizlabs/php_codesniffer: ^3.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- infection/infection: ^0.8.2
- jakub-onderka/php-parallel-lint: ^1.0
- phpro/grumphp: ^0.14.0
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^6.0
This package is not auto-updated.
Last update: 2024-09-15 05:54:55 UTC
README
简介
已经有很多PHP CodeSniffer规则可以帮助进行Magento 2开发
- Magento核心规则集(在文件夹
dev/tests/static/framework/Magento
中) - Magento Extension Quality Program(简称:MEQP)
- Magento Expert Consultancy Group(简称:ECG)
- PSR-1, PSR-2, 可能还有PSR-12
然而,一些最佳实践仍需要整合,或者一些规则需要改进。这个仓库旨在提出比现有规则集更高级的规则集。此外,一个基本目标是为符合Magento核心、第三方扩展和实现而创建规则,尽管它们都有不同的需求。
使用方法
要安装此包,请转到您的Magento 2根目录,并使用以下命令
composer require extdn/phpcs:dev-master
如果因为与magento/marketplace-eqp
的依赖关系失败而失败,请首先将EQP仓库添加到您的配置中,然后重复操作
composer config repositories.magento-marketplace-eqp vcs https://github.com/magento/marketplace-eqp
composer require magento/marketplace-eqp:dev-master
composer require extdn/phpcs:dev-master
安装完成后,您可以从命令行运行PHPCS来分析您的代码XYZ
vendor/bin/phpcs --standard=./vendor/extdn/phpcs/Extdn app/code/XYZ
vendor/bin/phpcs --standard=./vendor/extdn/phpcs/Extdn vendor/XYZ
如果您已配置了项目中的PHPCS编码标准Composer安装器插件(如https://github.com/Dealerdirect/phpcodesniffer-composer-installer),您可以通过其名称简单地引用此标准
vendor/bin/phpcs --standard=Extdn app/code/XYZ
vendor/bin/phpcs --standard=Extdn vendor/XYZ
如何贡献
我们需要以下方面的帮助
- 现有EQP规则的文档(其中每个EQP规则都可以包含在这个仓库的
ruleset.xml
中) - 创建新的PHPCS规则(见下文如何贡献)
- 关于PHPCS缺乏之处以及其他工具可能更有用的讨论(PhpStan,Phan)
- 关于新规则的讨论(通过定期的闲聊或GitHub Issue的讨论)
请注意,您也可以直接向Magento规则集(核心、MEQP、ECG - 参见上面的链接)贡献。同样,我们将努力将ExtDN规则集成到Magento规则集中,这也是ExtDN项目的一部分。
如何贡献
任何贡献都受欢迎。然而,请不要立即开始编码。确保首先这项工作值得付出努力。
-
在问题下添加一个新的问题,以解决需要的新规则集或报告其他问题。
-
一旦新规则被接受,在问题下添加标签
Accepted
,我们就可以开始了。 -
如果核心、MEQP或ECG中已经存在类似的规则,只需将其包含在ExtDN规则集中。
-
如果还没有规则,让我们创建它。例如,您可以使用文件夹
Extdn/Sniffs/Blocks
中的SetTemplateInBlockSniff
。它可以在Extdn/Samples/Blocks
下的示例文件中进行测试
vendor/bin/phpcs --standard=./vendor/extdn/phpcs/Extdn vendor/extdn/phpcs/Extdn/Samples
- 一旦这一切都正常工作,您就可以自由地创建一个包含将此规则添加到
ruleset.xml
文件的拉取请求(PR)。
使用GitHub问题标签
一些用于GitHub问题的标签
accepted
:该规则已被extdn接受。如果还没有人声称它,您可以开始工作experimental
:该规则也可以实现,但在将其集成到官方规则集之前,我们将尝试以低严重性首先尝试它non-PHPCS
:该规则无法用PHPCS实现,需要额外的工具。我们将其保留以供以后使用。组织
: 非代码相关的问题挂出会议议程
: 规则/问题将在下次社区挂出会议中讨论
如何创建嗅探规则
我们建议先为自身创建几个嗅探。官方的 PHPCS 维基 已经提供了很好的信息。同样,我们仓库(以及 Magento 仓库)中的其他嗅探也将提供大量的示例。
测试
所有规则都应附带测试。
在 Magento 安装中
要从主仓库运行嗅探单元测试,其中规则是通过 composer
安装的,首先配置 phpcs
以找到规则
vendor/bin/phpcs --config-set installed_paths vendor/extdn/phpcs/Extdn,vendor/magento/marketplace-eqp/MEQP2
然后可以像这样运行测试
phpunit -c vendor/extdn/phpcs/phpunit-vendor.xml vendor/extdn/phpcs/Extdn/Tests
在独立安装中
如果您已经单独克隆了这个 GitHub 仓库进行开发,使用 composer
安装相关内容和运行测试
composer install
composer test
每个 Test.php
类都应附带一个 Test.inc
文件,以便根据 PHPCS 的父类 AbstractSniffUnitTest
进行单元测试。确保包含一个 Test.md
Markdown 描述,该描述针对手头的问题,解释规则检查的内容,然后还建议要进行的改进。