Domanda

Qualcuno conosce uno strumento di pulizia / analisi di codice che informerebbe un programmatore PHP Magento 2 che DI argomenti non vengono utilizzati?

Ad esempio, uno strumento che guarderebbe alla seguente classe

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

e dirci che

    .
  1. La classe non utilizza la proprietà $urlModel

  2. La classe utilizza solo la proprietà $metadataService durante l'assegnazione del costruttore

  3. Dato quanto della programmazione Magento coinvolga "Prova questa classe, no, beh forse questa classe", sto trovando che lascio dietro i costruttori giganti con le dipendenze che non sono più usi.Avere uno strumento per aiutare a pulire questo sarebbe fantastico.

È stato utile?

Soluzione

Per quanto riguarda il campo urlModel, è possibile avvertire se la sua visibilità impostata su private and Mess Detector è configurato in phpstorm con dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml.Altrimenti c'è la possibilità che questa proprietà sia utilizzata nelle classi per bambini e nel rilevatore di casino non lo controlla.

Custodia con metadataService non è coperto, poiché è inizializzato e quindi considerato come usato .È possibile controllare rapidamente tutti i campi in una classe utilizzando la funzione "Trova utilizzi" nella tempesta di PHP, se non ci sono usi "leggere", molto probabilmente può essere rimosso in sicurezza.

Il consiglio generale è configurare PHP MD e PHP CS (Codice Sniffer) con gli stessi file di configurazione utilizzati dai test statici magenti, anche ha senso impostare la gravità per errore (quindi la tempesta PHP sottolinea gli errori con la linea di onda rossa).Per il codice sniffer si trova qui dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top