Magento 2:Nettoyage Inutilisé de Dépendances
Question
Quelqu'un sait-il d'un code-nettoyage/un outil d'analyse qui permettrait d'informer PHP Magento 2 programmeur qui DI arguments ne sont pas utilisés?
Par exemple, un outil qui ressemblerait à la classe suivante
<?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);
}
}
et de nous dire que
La classe n'utilise pas le
$urlModel
propriétéLa classe utilise uniquement le
$metadataService
propriété lors de l'affectation dans le constructeur
Compte tenu de la façon dont beaucoup de Magento programmation consiste à "essayer cette classe, non, peut-être bien que cette classe", je suis la recherche je laisse derrière géant de constructeurs avec des dépendances, je ne suis pas utilise plus.Disposer d'un outil pour aider à nettoyer ce serait génial.
La solution
Concernant l' urlModel
champ, il est possible d'obtenir une alerte si sa visibilité à l'ensemble de private
et mess detector est configuré dans PHPStorm avec dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml
.Sinon, il y a une chance que cette propriété est utilisée dans les classes enfant et le désordre détecteur de ne pas vérifier.
Cas avec metadataService
n'est pas couvert, car il est initialisé et donc considérés comme utilisé.Il est possible de vérifier rapidement tous les champs d'une classe à l'aide de "Trouver des usages, la fonction en PHP Tempête, si il n'y a pas de "lire" les usages alors très probablement, il peut être retiré en toute sécurité.
Conseil général est de configurer PHP MD et PHP CS (code sniffer) avec les mêmes fichiers de configuration qui sont utilisés par Magento essais statiques, aussi il est bon de définir la gravité de l'Erreur (donc PHP Tempête souligne les erreurs avec la vague rouge de la ligne).Pour le code sniffer il est situé ici dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml