php - 如何检查文件名和路径与其完整命名空间不匹配的 PHP 类(区分大小写)
问题描述
我有一个大型 PHP 项目,其中包含未知数量的文件名和/或路径实例,这些实例与类的完整命名空间不匹配。
到目前为止,我遇到的所有实例都是由于大小写不匹配(例如 Api 与 API)。
有没有一种简单的方法可以扫描整个项目以识别这些不匹配?
一个简单的基于控制台的工具将是理想的,因此它可以作为另一个进程的一部分自动运行。
任何建议表示赞赏。
谢谢。
解决方案
如果项目中的每个文件都已加载(include
或require
),您可以尝试使用该get_declared_classes()
函数来获取声明的类名,然后使用ReflectionClass
类检查ReflectionClass::getFileName()
并将它们与类名进行比较。
要注意的一件事是跳过每个ReflectionClass::isInternal()
返回 true 的类,因为这些类要么是默认的 PHP 类并且来自扩展,因此它们不是来自 PHP 文件(false
在这种情况下,该方法将返回)。
推荐阅读
- java - 开关盒在菜单项上不起作用 - 为什么?
- windows - 如何将 net use 命令的输出通过管道传输到文件
- python - 我可以使用for循环在python中多次向变量的值添加一些东西吗?
- reactjs - 用 Jest 测试 Sentry
- spring-data-jpa - 是否有不等于条件的 ExampleMatcher
- google-apps-script - 在 AppMaker 部署上安装触发器
- java - 我需要在每个星期五显示敬酒消息
- java - 无法生成范围报告
- java - 切换活动后碎片活动消失
- typescript - ts / js 中是否有使用异步迭代器的目录遍历器?