命名空间引用中的大小写与声明中的大小写不匹配(PHP Inspection EA Extended)
Case in namespace reference doesn't match the case in declaration (PHP Inspection EA Extended)
NOTE: PHP Inspector EA Extended version 4.0.6.3
我有一个新项目,其中包含一些现有的导入 classes,PHP PHPStorm 的检查(EA 扩展)插件即将推出:
Case in namespace reference doesn't match the case in declaration
在 PHP 页面上设置命名空间时。然而,这种情况与文件路径、class 引用和我能找到的所有用例相同。
我在搜索这个词时找不到任何有用的参考。
PHP Class:
<?php
namespace myVendorName\ProjectName;
Class AbstractClass {
}
文件路径:
/classes/vendor/myVendorName/ProjectName/AbstractClass.php
/classes/vendor/autoloader.php
(etc)
端点PHP文件:
<?php
use myVendorName\ProjectName\AbstractClass;
$dropValue = new AbstractClass();
它声称什么是正确的?
PHP 检查 EA Extended 想要将我在 class 文件中的命名空间调用更改为 namespace myvendorname\ProjectName
。它希望将主要供应商名称的大小写全部小写。
然而 Autoloading standard 指出:
-
- Alphabetic characters in the fully qualified class name MAY be any combination of lower case and upper case.
不一致?
class 文件中 namespace myVendorName;
的名称空间声明(没有项目子名称)不会向 Inspector 提出任何标志。然而,对于项目名称,它突然想要更改供应商名称前缀的大小写。自动加载器路径需要项目名称,所以.... ?
我查看了整个项目,但找不到任何引用此命名空间的地方,我相信我已经检查并确认了 PHPStorm 以及实时服务器。
- 我是不是真的很蠢,漏掉了什么?
- 这是插件的问题吗?
检查员引用的投诉来源的“声明”是什么?
找到了。
问题是 PHPStorm 有一个包含路径的“包含路径”列表,呃,包含路径,在这个列表中是一些共享文件的服务器文件夹的路径。
在这个服务器端文件结构中有一个根级别 class,上面声明了一个命名空间,它是供应商命名空间的小写副本。
PHP Inspection (EA Extended) 正在检测到这一点,并以某种方式得出结论,服务器共享文件夹中的文件优先于项目特定的 /vendors/
文件夹。
共享文件夹中的 class 文件未被该项目使用,也未被该项目引用,引用完全在 PHPStorm 的设置中。
删除此引用(实际上,删除对 myvendorname
的错误命名空间调用)可以解决所有这些问题。
NOTE: PHP Inspector EA Extended version 4.0.6.3
我有一个新项目,其中包含一些现有的导入 classes,PHP PHPStorm 的检查(EA 扩展)插件即将推出:
Case in namespace reference doesn't match the case in declaration
在 PHP 页面上设置命名空间时。然而,这种情况与文件路径、class 引用和我能找到的所有用例相同。
我在搜索这个词时找不到任何有用的参考。
PHP Class:
<?php
namespace myVendorName\ProjectName;
Class AbstractClass {
}
文件路径:
/classes/vendor/myVendorName/ProjectName/AbstractClass.php
/classes/vendor/autoloader.php
(etc)
端点PHP文件:
<?php
use myVendorName\ProjectName\AbstractClass;
$dropValue = new AbstractClass();
它声称什么是正确的?
PHP 检查 EA Extended 想要将我在 class 文件中的命名空间调用更改为 namespace myvendorname\ProjectName
。它希望将主要供应商名称的大小写全部小写。
然而 Autoloading standard 指出:
- Alphabetic characters in the fully qualified class name MAY be any combination of lower case and upper case.
不一致?
class 文件中 namespace myVendorName;
的名称空间声明(没有项目子名称)不会向 Inspector 提出任何标志。然而,对于项目名称,它突然想要更改供应商名称前缀的大小写。自动加载器路径需要项目名称,所以.... ?
我查看了整个项目,但找不到任何引用此命名空间的地方,我相信我已经检查并确认了 PHPStorm 以及实时服务器。
- 我是不是真的很蠢,漏掉了什么?
- 这是插件的问题吗?
检查员引用的投诉来源的“声明”是什么?
找到了。
问题是 PHPStorm 有一个包含路径的“包含路径”列表,呃,包含路径,在这个列表中是一些共享文件的服务器文件夹的路径。
在这个服务器端文件结构中有一个根级别 class,上面声明了一个命名空间,它是供应商命名空间的小写副本。
PHP Inspection (EA Extended) 正在检测到这一点,并以某种方式得出结论,服务器共享文件夹中的文件优先于项目特定的 /vendors/
文件夹。
共享文件夹中的 class 文件未被该项目使用,也未被该项目引用,引用完全在 PHPStorm 的设置中。
删除此引用(实际上,删除对 myvendorname
的错误命名空间调用)可以解决所有这些问题。