题
有谁知道有一个代码清理/分析工具可以通知 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);
}
}
并告诉我们
该类不使用
$urlModel
财产该类仅使用
$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