有谁知道有一个代码清理/分析工具可以通知 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归因
scroll top