Frage

Kennt jemand ein Code-Reinigungs- / Analyse-Tool, das einen PHP-Magento-2-Programmierer darüber informiert, welche DI-Argumente nicht verwendet werden?

Zum Beispiel ein Tool, das sich die folgende Klasse ansehen würde

<?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);
    }  
}

und sag uns das

  1. Die Klasse verwendet nicht die $urlModel Eigenschaft

  2. Die Klasse verwendet nur die $metadataService eigenschaft beim Zuweisen im Konstruktor

Wenn man bedenkt, wie viel von der Magento-Programmierung beinhaltet "Probieren Sie diese Klasse aus, nein, vielleicht diese Klasse", stelle ich fest, dass ich riesige Konstruktoren mit Abhängigkeiten hinterlasse, die ich nicht mehr benutze.Ein Werkzeug zu haben, um dies zu bereinigen, wäre großartig.

War es hilfreich?

Lösung

In Bezug auf die urlModel feld, es ist möglich, eine Warnung zu erhalten, wenn die Sichtbarkeit auf eingestellt ist private und Chaos-Detektor ist konfiguriert in PhpStorm mit dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml.Andernfalls besteht die Möglichkeit, dass diese Eigenschaft in untergeordneten Klassen verwendet wird und Mess Detector dies nicht überprüft.

Koffer mit metadataService wird nicht abgedeckt, da es initialisiert und somit als betrachtet wird verwendet.Es ist möglich, schnell jedes Feld in einer Klasse mit der Funktion 'Find usages' in PHP Storm zu überprüfen. Wenn es keine 'Read' -Verwendungen gibt, kann es höchstwahrscheinlich sicher entfernt werden.

Allgemeiner Rat ist, PHP MD und PHP CS (Code Sniffer) mit den gleichen Konfigurationsdateien zu konfigurieren, die von statischen Magento-Tests verwendet werden. Außerdem ist es sinnvoll, den Schweregrad auf Fehler zu setzen (so unterstreicht PHP Storm Fehler mit einer roten Wellenlinie).Für Code-Sniffer befindet es sich hier dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top