Magento 2: Очистка неиспользованных зависимостей
Вопрос
Кто-нибудь знает об инструменте для очистки / анализа кода, который сообщил бы программисту PHP Magento 2, который разрядится аргументы, которые не используются?
Например, инструмент, который будет смотреть на следующий класс
<?php
namespace Namespace\Module\Controller\V1;
class MyClass extends \Magento\Framework\App\Action\Action
{
protected $resultJsonFactory;
protected $metadataService;
protected $urlModel;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
\Namespace\Module\Helper\Api $apiHelper,
) {
parent::__construct($context);
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
$this->metadataService = $metadataServiceInterface;
}
public function execute()
{
$result = $this->resultJsonFactory->create();
return $result->setData($items);
}
}
.
и сообщите нам, что
-
Класс не использует свойство
$urlModel
-
класс использует только свойство
$metadataService
при назначении в конструкторе
Учитывая, сколько Magento Programming включает в себя «попробовать этот класс, нет, ну, возможно, этот класс», я обнаруживаю, что я оставляю за гигантскими конструкторами с зависимостями, я не более не использую.Наличие инструмента, чтобы помочь убрать это, было бы здорово.
Решение
Что касается поля urlModel
, можно получить предупреждение, если его видимость установлена для private
и Mess Detector, является сконфигурирован в phpstorm с dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml
.В противном случае есть шанс, что это свойство используется в детских классах, и детектор беспорядков не проверяет это.
с metadataService
не покрывается, потому что он инициализируется и, таким образом, рассматривается как , используемый .Можно быстро проверить каждое поле в классе, используя функцию «Найти использование» в PHP Storm, если нет «чтения» использования, то, скорее всего, его можно смело удалить.
Общая рекомендация состоит в том, чтобы настроить PHP MD и PHP CS (код Sniffer) с одинаковыми файлами конфигурации, которые используются Magento Static Tests, также имеет смысл устанавливать серьезность к ошибке (поэтому шторм PHP подчеркивает ошибки с красной волновой линией)ОтказДля кода Sniffer он расположен здесь dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml