问题描述
注意:PHP Inspector EA 扩展版 4.0.6.3
我有一个包含一些现有导入类的新项目,并且为 PHPStorm 提供了 PHP 检查(EA 扩展)插件:
命名空间引用中的大小写与声明中的大小写不匹配
在 PHP 页面上设置命名空间时。然而,这个案例与我能找到的文件路径、类引用和所有使用案例相同。
我在搜索这个词时找不到任何有用的参考。
PHP 类:
<?PHP
namespace myvendorName\ProjectName;
Class AbstractClass {
}
文件路径:
/classes/vendor/myvendorName/ProjectName/AbstractClass.PHP
/classes/vendor/autoloader.PHP
(等)
端点 PHP 文件:
<?PHP
use myvendorName\ProjectName\AbstractClass;
$dropValue = new AbstractClass();
它声称什么是正确的?
PHP 检查 EA Extended 想要将我的类文件中的命名空间调用更改为 namespace myvendorname\ProjectName
。它希望将主要供应商名称的大小写降低为全部小写。
然而 Autoloading standard 声明:
-
- 完全限定类名中的字母字符可以是小写和大写的任意组合。
不一致?
类文件中 namespace myvendorName;
的命名空间声明(没有项目子名称)不会对 Inspector 产生任何标志。然而,对于项目名称,它突然想要更改供应商名称前缀的大小写。自动加载器路径需要项目名称,所以.... ?
我查看了整个项目,但找不到任何引用此命名空间的地方,我相信我已经检查并确认了 PHPStorm 和实时服务器上的所有设置和值。
- 我是不是真的很愚蠢,遗漏了什么?
- 这是插件的问题吗?
检查员作为其投诉来源的“声明”是什么?
解决方法
找到了。
问题是 PHPStorm 有一个包含路径的“包含路径”列表,在此列表中是一些共享文件的服务器文件夹的路径。
在这个服务器端文件结构中是一个根级别的类,它声明了一个命名空间,它是供应商命名空间的小写重复。
PHP 检查(EA 扩展)检测到这一点,并以某种方式得出结论,服务器共享文件夹中的文件优先于项目特定的 /vendors/
文件夹。
共享文件夹中的类文件没有被这个项目使用,也没有被这个项目引用,引用完全在PHPStorm的设置中。
删除此引用(实际上,删除对 myvendorname
的错误命名空间调用)可以解决所有这些问题。