문제

PHP Magento 2 프로그래머에게 사용되지 않는 DI 인수를 알려주는 코드 정리/분석 도구를 아는 사람이 있습니까?

예를 들어, 다음 클래스를 보는 도구는

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

그리고 우리한테 그걸 말해줘

  1. 수업에서는 다음을 사용하지 않습니다. $urlModel 재산

  2. 클래스는 다음을 사용합니다. $metadataService 생성자에서 할당할 때 속성

Magento 프로그래밍에 "이 클래스를 사용해 보세요. 아니 어쩌면 이 클래스를 사용해 보세요"가 얼마나 많이 포함되어 있는지를 고려하면 더 이상 사용하지 않는 종속성이 있는 거대한 생성자를 남겨두고 있다는 것을 알게 되었습니다.이를 정리하는 데 도움이 되는 도구가 있으면 좋을 것입니다.

도움이 되었습니까?

해결책

에 관하여 urlModel 필드의 가시성을 다음으로 설정하면 경고를 받을 수 있습니다. private 엉망 탐지기는 PHPStorm에서 구성 ~와 함께 dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml.그렇지 않으면 이 속성이 하위 클래스에서 사용되고 엉망 감지기가 이를 확인하지 않을 가능성이 있습니다.

케이스 포함 metadataService 초기화되어 다음과 같이 간주되므로 다루지 않습니다. 사용된.PHP Storm의 '사용 위치 찾기' 기능을 사용하면 클래스의 모든 필드를 빠르게 확인할 수 있습니다. '읽기' 사용 위치가 없으면 안전하게 제거할 수 있습니다.

일반적인 조언은 Magento 정적 테스트에서 사용되는 것과 동일한 구성 파일로 PHP MD 및 PHP CS(코드 스니퍼)를 구성하는 것입니다. 또한 심각도를 오류로 설정하는 것이 좋습니다(따라서 PHP Storm은 실수에 빨간색 물결선을 표시합니다).코드 스니퍼의 경우 여기에 있습니다. dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/ruleset.xml

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top