php - 如何在使用语句中检测不存在的类
问题描述
我怎样才能检测到类NonExistingClass
不存在?
我目前正在检查 PhpStan、Phan、Composer 的功能,但目前还没有。
NonExistingClass
开发人员删除类中调用的代码A
并删除整个类NonExistingClass
但不删除类中的 use 语句A
:
<?php
namespace App\Service;
use App\Model\NonExistingClass;
class A
{
}
在静态分析过程中如何检测这种情况?
解决方案
您无法在use
语句中检测到不存在的类,因为它可能是命名空间。
您可以做的是检测文件中未使用的用途,这实际上是您的代码示例中的情况。查看slevomat/coding-standardSlevomatCodingStandard.Namespaces.UnusedUses
中 PHP_CodeSniffer 的嗅探。
如果use
文件中实际使用了语句中不存在的类,PHPStan 会告诉您。在此处查看示例:https ://phpstan.org/r/1f05520e-88fe-4a61-9d05-018b466e640d
推荐阅读
- php - 如何链接到页面的特定部分 HTML PHP
- c# - 当后端代码中的简单键值变量工作相同时,为什么要使用 redis 作为缓存层?
- google-apps-script - Google Slides Apps 脚本检索页面中的形状
- python-3.x - 在 KNeighborsClassifier 中使用自定义指标时,我不断收到“TypeError:只有整数标量数组可以转换为标量索引”
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误