首页 > 解决方案 > 如何在使用语句中检测不存在的类

问题描述

我怎样才能检测到类NonExistingClass不存在?

我目前正在检查 PhpStan、Phan、Composer 的功能,但目前还没有。

NonExistingClass开发人员删除类中调用的代码A并删除整个类NonExistingClass但不删除类中的 use 语句A

<?php

namespace App\Service;

use App\Model\NonExistingClass;

class A
{
}

在静态分析过程中如何检测这种情况?

标签: phpstatic-analysis

解决方案


您无法在use语句中检测到不存在的类,因为它可能是命名空间。

您可以做的是检测文件中未使用的用途,这实际上是您的代码示例中的情况。查看slevomat/coding-standardSlevomatCodingStandard.Namespaces.UnusedUses中 PHP_CodeSniffer 的嗅探。

如果use文件中实际使用了语句中不存在的类,PHPStan 会告诉您。在此处查看示例:https ://phpstan.org/r/1f05520e-88fe-4a61-9d05-018b466e640d


推荐阅读