Pergunta

Alguém sabe de um código-limpeza/ferramenta de análise que gostaria de informar PHP Magento 2 programador que DI argumentos não estão sendo usados?

Por exemplo, uma ferramenta que iria olhar para a seguinte 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 diga-nos o que

  1. A classe não usar o $urlModel propriedade

  2. A classe usa apenas o $metadataService propriedade ao atribuir o construtor

Dado o quanto do Magento programação envolve "tente esta classe, não, bem, talvez essa classe", eu estou achando que eu deixar para trás gigante de construtores com dependências eu sou não usa mais.Ter uma ferramenta para ajudar a limpar isso seria ótimo.

Foi útil?

Solução

Sobre o urlModel campo, é possível obter aviso se a sua visibilidade é definida para private e a bagunça detector é configurado em PHPStorm com dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml.Caso contrário, há uma chance de que essa propriedade é usada na criança classes e bagunça detector não verifica.

Caso metadataService não está coberto, porque ele é inicializado e, portanto, considerado como usado.É possível verificar rapidamente a cada campo em uma classe usando "Encontrar usos" recurso em PHP Tempestade, se não há 'ler' usos então o mais provável é que ele pode ser removido com segurança.

Conselho geral é configurar o PHP MD e PHP CS (código sniffer) com os mesmos arquivos de configuração que são utilizados pelo Magento ensaios estáticos, também faz sentido para definir a gravidade de Erro (para PHP Tempestade sublinha erros com a onda vermelha linha).Para o código de sniffer ele está localizado aqui dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top