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

  1. La classe n'utilise pas le $urlModel propriété

  2. 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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top