2

我在 Eclipse 中开发了一个 PHP 项目。在更新到上一个版本(2020-06)之前,我以前没有收到任何警告......自从我进行了这个更新,它向我发送了两个警告。

首先是关于类文件,例如 MyClass.inc.php 中定义的 MyClass :Eclipse 说我必须将我的文件命名为“MyClass.php”或将我的类命名为 MyClass.inc ... -__________- 但我想继续将它们命名为 MyClass .inc.php !!!

其次是关于命名空间......我不使用它们,Eclipse 告诉我 << 声明的命名空间 "" 与预期的命名空间 "path\folder" >> 不匹配(path\folder 是这篇文章的一个例子) .

我使用 PHP 7.4 ......我尝试了过滤器,但它不能正常工作(可能是我的坏),而且我没有找到如何特别禁用这个警告。

感谢帮助,如果是bug,希望能更新一下T_T

4

2 回答 2

6

新的命名空间验证规则虽然有效,但很麻烦。我想名称空间与目录结构不完全匹配并没有什么不寻常或错误的。我正在开发一个基于 mezzio 的应用程序,这是通常的情况,因为框架使用 composer 进行自动加载。

升级后,我的项目中没有 Eclipse 不会发出警告的文件,例如:声明的命名空间 "App\Middleware" 与预期的命名空间 "project\src\App\src\Middleware" 不匹配

此警告说明了事实,但无论如何,我认为这种情况应该是警告的原因......

编辑: 似乎有一个选项可以更改报告的级别或完全静音“问题”:

Preferences->PHP->Validation->Error/Warnings: Unexpected namespace name

于 2020-06-22T16:05:36.097 回答
0

在 Eclipse 中为命名空间配置自定义路径:

  1. 安装“PHP 开发工具 (PDT) Composer 支持”
  2. 右键单击项目→配置→添加作曲家支持
  3. 一个 Composer 配置对话框应该打开
  4. 在“自动加载”选项卡中,您可以将命名空间分配给路径(相对于项目根目录)

这将composer.json在 PHP 项目的根目录中创建一个具有以下内容的:

{
    "name" : "my project",
    "autoload" : {
        "psr-4" : {
            "some\\namespace" : "src/some/namespace"
        }
    }
}

您可以定义从命名空间到目录的多个映射。有关更多信息,请参阅作曲家文档

对于您的其他问题,我想我会放弃并将所有文件.inc.php.php. 如果您这样做,您将来可能会遇到更少的问题。

于 2021-11-11T13:29:24.597 回答