Які всі інструменти доступні для перевірки стандарту кодування Magento 2?


Відповіді:


9

Magento 2 використовують стандарт кодування ECGM2

Ви можете завантажити тут

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

ECG Magento Code Sniffer Coding Standard - це набір правил та нюхань для інструменту PHP_CodeSniffer .

Це дозволяє автоматично перевіряти ваш код на деякі поширені проблеми кодування Magento та PHP, наприклад:

  1. необроблені запити SQL; SQL запити всередині циклу;
  2. пряме інстанціювання класів Mage та Enterprise;
  3. непотрібне завантаження колекції;
  4. надмірна складність коду;
  5. використання небезпечних функцій; використання суперглобалів PHP;

та багато інших.

  1. Ecg для Magento
  2. EcgM2 для Magento 2

І Magento, і Magento 2 підтримуються.


Цей інструмент призначений для розширення для всієї перевірки коду Magento 2?
Рама Чандран М

Ви можете перевірити модуль Magento 2 за допомогою цієї команди після встановлення ECGM2 "phpcs --standard = EcgM2 / шлях / до / модуля"
Prince Patel

Звичайно Патель. Будь-який інший доступний інструмент, будь ласка, додайте в коментарі.
Рама Чандран М

Чи повинен я знати, що необхідність перевірки W3C для перевірки коду Magento 2?
Рама Чандран М

Перевірка W3C призначена для презентації веб-сторінок Magento, а не для стандарту кодування. Magento використовує лише ЕКГ для Magento 1 і 2 для перевірки стандарту кодування розширення.
Принц Патель

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 Фатальна помилка: Uncaught PHP_CodeSniffer_Exception: Посилається нюхати "MEQP1.Exceptions.Npace" не існує

    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:

    Завантажте "validate_m2_package.php" з https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php та покладіть його на корінь магенто:

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

Перед запуском composer require magento/marketplace-eqpвиправте це composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/isissue/2
незрозуміло

8

Окрім відповіді принца Пателі ...

Magento 2 також використовує стандарт кодування PSR-2 , тому ви також можете запустити phpcs --standard=PSR2 /path/to/module. Для виправлення PSR-2 "помилок" ви можете використовувати " PHP-кодери " Beautifier and Fixer "(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, але належна практика ...

  • працювати phpcbfз PSR2і MEQP2стандартом
  • працювати 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 Будь-який інструмент для перевірки безпеки?
Рама Чандран М

1
Для Secuirty я не маю інструментів. Я думаю, що дотримання стандартів кодування (уникати необроблених запитів тощо) - перший хороший крок.
sv3n

2

Для перевірки вразливості програми M2 ми можемо використовувати:

ZAP(Zed Attack Proxy).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.