Pregunta

¿Alguien conoce una herramienta de análisis/limpieza de código que pueda informar a un programador de PHP Magento 2 qué argumentos DI no se están utilizando?

Por ejemplo, una herramienta que analizaría la siguiente clase

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

y dinos que

  1. La clase no utiliza el $urlModel propiedad

  2. La clase sólo utiliza el $metadataService propiedad al asignar en el constructor

Dado que gran parte de la programación de Magento implica "probar esta clase, no, bueno, tal vez esta clase", descubro que dejo atrás constructores gigantes con dependencias que ya no uso.Tener una herramienta para ayudar a limpiar esto sería genial.

¿Fue útil?

Solución

Con respecto a urlModel campo, es posible obtener una advertencia si su visibilidad se establece en private y el detector de desorden es configurado en PHPStorm con dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml.De lo contrario, existe la posibilidad de que esta propiedad se utilice en clases secundarias y el detector de desorden no lo comprueba.

Caso con metadataService no está cubierto, porque está inicializado y por lo tanto se considera como usado.Es posible comprobar rápidamente todos los campos de una clase utilizando la función 'Buscar usos' en PHP Storm; si no hay usos de 'lectura', lo más probable es que se pueda eliminar de forma segura.

El consejo general es configurar PHP MD y PHP CS (rastreador de código) con los mismos archivos de configuración que utilizan las pruebas estáticas de Magento; también tiene sentido establecer la gravedad en Error (por lo que PHP Storm subraya los errores con una línea de onda roja).Para el rastreador de códigos se encuentra aquí. dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top