命名空间引用中的大小写与声明中的大小写不匹配(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 指出:

    1. 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 的错误命名空间调用)可以解决所有这些问题。