【问题标题】:Case in namespace reference doesn't match the case in declaration (PHP Inspection EA Extended)命名空间引用中的大小写与声明中的大小写不匹配(PHP 检查 EA 扩展)
【发布时间】:2021-07-13 22:22:00
【问题描述】:

注意: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 Inspection EA Extended 希望将我的类文件中的命名空间调用更改为namespace myvendorname\ProjectName。它希望将主要供应商名称的大小写全部小写。

然而Autoloading standard 声明:

    1. 完全限定类名中的字母字符可以是小写和大写的任意组合。

不一致?

类文件中namespace myVendorName;(没有项目子名)的命名空间声明不会引发检查器的标志。然而,对于项目名称,它突然想要更改供应商名称前缀的大小写。自动加载器路径需要项目名称,所以....?


我查看了整个项目,但找不到任何引用此命名空间的地方,我相信我已经检查并确认了 PHPStorm 以及实时服务器上的所有设置和值。

  • 我是不是真的很愚蠢,错过了什么?
  • 这是插件的问题吗?

检查员作为投诉来源引用的“声明”是什么?

【问题讨论】:

    标签: php namespaces phpstorm


    【解决方案1】:

    找到了。

    问题是 PHPStorm 有一个“包含路径”列表,呃,包含路径,并且在这个列表中是一些共享文件的服务器文件夹的路径。

    在这个服务器端文件结构中有一个根级别的类,它声明了一个命名空间,它是供应商命名空间的小写重复。

    PHP 检查(EA 扩展)正在检测到这一点,并以某种方式得出结论,服务器共享文件夹中的文件优先于项目特定的 /vendors/ 文件夹。

    共享文件夹中的类文件没有被这个项目使用,也没有被这个项目引用,这个引用完全在 PHPStorm 的设置中。

    删除此引用(实际上是删除对myvendorname 的错误命名空间调用)清除所有这些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-15
      • 2022-11-27
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 2016-04-03
      相关资源
      最近更新 更多