В настоящее время я работаю над проектом проверки стандартов кодирования Magento 2.
Доступен ли какой-либо другой инструмент, кроме PHP_CodeSniffer , для проверки правильности написания кода в Magento 2 и PHP?
В настоящее время я работаю над проектом проверки стандартов кодирования Magento 2.
Доступен ли какой-либо другой инструмент, кроме PHP_CodeSniffer , для проверки правильности написания кода в Magento 2 и PHP?
Ответы:
Magento 2 использует стандарт кодирования ECGM2
Вы можете скачать здесь
ECG Magento Code Sniffer Coding Standard - это набор правил и снифферов для инструмента PHP_CodeSniffer .
Это позволяет автоматически проверять ваш код на наличие некоторых распространенных проблем с Magento и PHP, таких как:
и много других.
Оба Magento и Magento 2 поддерживаются.
Magento 2 использует стандарт кодирования ECGM2:
Установите стандарт кодирования:
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.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 )
Проверьте расширение 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?
Технический обзор торговой площадки:
vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
Подтвердите расширение Magento 2:
Загрузите «validate_m2_package.php» с https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php и поместите его в корневой каталог magento:
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/issues/2
В дополнение к принцу Пательсу ответят ...
Magento 2 также использует стандарт кодирования PSR-2 , так что вы также можете запустить phpcs --standard=PSR2 /path/to/module
. Для исправления «ошибок» PSR-2 вы можете использовать « PHP Code Beautifier and Fixer (phpcbf) »
Для меня это работает очень хорошо ...
Команды:
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, но хорошая практика imho ...
phpcbf
с PSR2
и MEQP2
стандартомphpcs -s
с обоими стандартамиphpmd -s
phpstan -l 7
0.8.5
-s
опция отображать имя сниффа ... возможно, используйте ful, если вы хотите подавить предупреждения
Для хороших отчетов я бы предложил phpdox . Он собирает данные из ...
phploc
phpcs
phpmd
phpunit
покрытие кодаПример (без покрытия кода): http://phpdox.de/demo/PHPUnit/index.xhtml
Другие инструменты: