Ви коли-небудь замислювалися, наскільки легко перевірити якість власного коду, коду ваших колег або стороннього модуля, який ви хочете використовувати в проекті Magento?
Команда розробників Magento створила Magento Extension Quality Program Coding Standard (Magento EQP), який дозволяє перевірити відповідність коду стандарту, а також виявити такі недоліки:
- виконання SQL-запитів у циклі;
- використання небезпечних функцій;
- використання суперглобальних змінних;
- надмірна складність коду;
- невиправдане завантаження колекцій.
Встановлення
Ви можете встановити... Magento EQP через Composer, виконавши цю команду CLI:
git clone https://github.com/magento/magento-coding-standard.git
cd magento-coding-standard
composer install
Якщо у вас немає composer, ви можете... завантажити його тут.
Перевірка
Щоб перевірити код (який знаходиться, наприклад, у папці /шлях/до/вашого/розширення ), перейдіть до папки Magento EQP :
cd /path/to/magento-coding-standard
та виконайте таку команду:
vendor/bin/phpcs /path/to/your/extension --standard=Magento2 > log.txt
Результат перевірки буде збережено у файлі log.txt і виглядатиме так:
FILE: /path/to/your/extension/Model/Object.php
----------------------------------------------------------------------
FOUND 0 ERRORS AND 10 WARNINGS AFFECTING 10 LINES
----------------------------------------------------------------------
46 | WARNING | Use of protected class members is discouraged.
51 | WARNING | Use of protected class members is discouraged.
56 | WARNING | Use of protected class members is discouraged.
61 | WARNING | Use of protected class members is discouraged.
66 | WARNING | Use of protected class members is discouraged.
71 | WARNING | Use of protected class members is discouraged.
109 | WARNING | Use of protected class members is discouraged.
159 | WARNING | Direct object instantiation (object of
| | \Magento\Framework\DataObject) is discouraged in
| | Magento 2.
222 | WARNING | The use of function is_null() is discouraged; use
| | strict comparison "=== null" instead.
256 | WARNING | Direct throw of Exception is discouraged. Use
| | \Magento\Framework\Exception\LocalizedException
| | instead.
----------------------------------------------------------------------
Перш за все, зверніть увагу на те, чи є якась інформація про ПОМИЛКИ, які потрібно виправити, особливо якщо ви хочете, щоб ваш код пройшов технічний тест на Magento Marketplace. Спробуйте також виправити ПОПЕРЕДЖЕННЯ.
Автоматичне виправлення помилок
Якщо після перевірки якості ви отримуєте надзвичайно велику кількість попереджень, Magento EQP надає інструмент, який автоматично виправить недоліки, якщо це можливо.
Щоб розпочати процес автоматичного виправлення, виконайте цю команду:
vendor/bin/phpcbf /path/to/your/extension --standard=Magento2