检查Magento 2编码标准的所有工具有哪些?


Answers:


9

Magento 2使用ECGM2编码标准

您可以从这里下载

https://github.com/magento-ecg/coding-standard

ECG Magento代码嗅探器编码标准是PHP_CodeSniffer工具的一组规则和嗅探。

它允许针对一些常见的Magento和PHP编码问题自动检查您的代码,例如:

  1. 原始SQL查询;循环内的SQL查询;
  2. 直接实例化Mage和Enterprise类;
  3. 不必要的收集加载;
  4. 过多的代码复杂性;
  5. 使用危险功能;使用PHP Superglobals;

还有很多其他

  1. Magento的心电图
  2. Magento 2的EcgM2

Magento和Magento 2均受支持。


这个工具是对整个Magento 2代码检查的扩展吗?
Rama Chandran M

您可以在ECGM2安装“ phpcs --standard = EcgM2 / path / to / module”之后通过此命令检查Magento 2模块
Prince Patel

当然可以。任何其他可用的工具,请添加注释。
Rama Chandran M

我是否知道W3C验证需要Magento 2代码验证?
Rama Chandran M

W3C验证适用于Magento网页演示,不适用于编码标准。Magento仅将ECG用于Magento 1和2,以检查扩展编码标准。
帕特尔王子(Patel Patel)

12

Magento 2使用ECGM2编码标准:

  1. 安装编码标准:

    cd to/your/magento/install/directory
    composer create-project --repository=https://repo.magento.com magento/marketplace-eqp magento-coding-standard
    composer require magento/marketplace-eqp
    cd magento-coding-standard

    如果出现错误:

    PHP致命错误:未捕获PHP_CodeSniffer_Exception:所引用的嗅探“ MEQP1.Exceptions.Namespace”不存在

    vendor/bin/phpcs --config-set installed_paths ../../..
    vendor/bin/phpcs --config-set m2-path <path-to-magento2> ( for eg. sudo vendor/bin/phpcs --config-set m2-path  /var/www/html/magento2 )
  2. 测试您的M2扩展程序:

    要自动更正错误,请使用phpcbf:

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --no-patch --extensions=php,phtml,xml,css,js

    对于查看文件

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml 

    要检查错误/警告:

    vendor/bin/phpcs <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --extensions=phtml,xml,css,js,php

    对于查看文件

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml

    此处提供一些警告的解决方案:

    如何解决Magento Marketplace技术审查报告中提出的警告/错误?

  3. 市场技术评论:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. 验证Magento 2扩展名:

    https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php下载“ validate_m2_package.php” ,并将其放在magento的根目录上:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip

在运行之前composer require magento/marketplace-eqp用this进行修复composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqpgithub.com/magento/marketplace-eqp/issues/2
晦涩

8

除了帕特尔王子的答案...

Magento 2还使用PSR-2编码标准,因此您也可以运行phpcs --standard=PSR2 /path/to/module。要修复PSR-2“错误”,您可以使用“ PHP代码美化和修复程序(phpcbf)

对我来说,这非常好...

  • 自动修复PSR2错误
  • 创建报告
  • 将报告合并到一个文件中

命令:

phpcbf --standard=PSR2 ./app/
phpcs --report-gitblame=CS-blame --report-source=CS-code --report-full=CS-full ./app/
cat CS-* >> ECG-PSR2 ; rm CS-*

如果使用git,则可以在提交更改之前添加一个pre-commit 挂钩以自动运行phpcs/ phpcbf


更新:

并非特别适合于magento编码标准,但是好的做法恕我直言...

  • 运行phpcbfPSR2MEQP2标准
  • 运行phpcs -s有两个标准
  • phpmd -s
  • phpstan -l 7
    • 对于magento 2.2,您必须使用版本 0.8.5

-s 选项是显示嗅探名称...如果要抑制警告,请使用ful

对于不错的报告,我建议phpdox。汇总来自...的数据

  • phploc
  • phpcs
  • phpmd
  • phpunit 代码覆盖率
  • git日志
  • ...

样本(无代码覆盖):http : //phpdox.de/demo/PHPUnit/index.xhtml

其他工具:


谢谢@ sv3n。有检查安全性的工具吗?
Rama Chandran M

1
为了安全起见,我没有工具。我认为遵循编码标准(避免原始查询等)是第一步。
sv3n

2

要验证M2应用程序的漏洞,我们可以使用:

ZAP(Zed Attack Proxy).
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.