Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查文件名和路径与其完整名称空间(区分大小写)不匹配的PHP类_Php - Fatal编程技术网

如何检查文件名和路径与其完整名称空间(区分大小写)不匹配的PHP类

如何检查文件名和路径与其完整名称空间(区分大小写)不匹配的PHP类,php,Php,我有一个大型PHP项目,其文件名和/或路径的实例数量未知,与类的完整名称空间不匹配 到目前为止,我遇到的所有实例都是由于case-eg-Api与case-eg-Api不匹配造成的 是否有一种简单的方法可以扫描整个项目来识别这些不匹配 一个简单的基于控制台的工具将是理想的,因此它可以作为另一个进程的一部分自动运行 谢谢你的建议 谢谢。如果项目中的每个文件都加载了include或require,您可以尝试使用get_declared_classes函数获取声明的类名,然后使用ReflectionCl

我有一个大型PHP项目,其文件名和/或路径的实例数量未知,与类的完整名称空间不匹配

到目前为止,我遇到的所有实例都是由于case-eg-Api与case-eg-Api不匹配造成的

是否有一种简单的方法可以扫描整个项目来识别这些不匹配

一个简单的基于控制台的工具将是理想的,因此它可以作为另一个进程的一部分自动运行

谢谢你的建议


谢谢。

如果项目中的每个文件都加载了include或require,您可以尝试使用get_declared_classes函数获取声明的类名,然后使用ReflectionClass类检查ReflectionClass::getFileName并将它们与类名进行比较


需要注意的一点是跳过ReflectionClass::isInternal返回true的每个类,因为这些类要么是默认的PHP类,要么来自扩展,因此它们不是来自PHP文件。在这种情况下,该方法将返回false。

您使用的是IDE吗?你希望用什么来扫描?在终端中只列出有问题的文件是理想的,但我愿意接受建议。你可以尝试一个简单的正则表达式搜索,比如new\s+\w+。当然,这不会抓住一切,但可能是一个好的开始。任何基于地图的自动加载程序都可能帮助phpab、composer dump autoload-a决定以何种方式修复或扩展非unixy路径的外壳。