PhpStorm 告诉我:"Namespace name doesn't match PSR 0/PSR 4 project structure"

PhpStorm tells me: "Namespace name doesn't match PSR 0/PSR 4 project structure"

我正在使用 Laravel 5.0,一切正常。

但是,我不断收到这些警告消息。我查看了 JetBrains 文档,但我仍然对如何处理它一头雾水。

本质上,我担心如果我允许 PhpStorm 自动 运行 "Detect PSR0 Namespace Roots" 那么它可能会破坏我的代码/项目。

不确定发生了什么,我该怎么办?

PSR-0 只是构建您的 PHP 项目的约定。当 PHPStorm 要求自动 "Detect PSR0 Namespace Roots" 时,它会检查哪些 类 将被自动加载,以便它可以在您编写代码时执行正确的自动完成。

它不会影响您的代码,但可能会改善您的编码体验。

如果您使用 composer,与 composer 同步的较新答案是更好的选择。


PSR-4 命名空间根可以指定一个可以配置的前缀。

过程如下:

  1. 找到你的命名空间的根,例如 src.
  2. 右键单击 将目录标记为根目录。
  3. 菜单 -> 文件 -> 设置 -> 目录。
  4. 单击源根旁边的铅笔图标或 p^。
  5. 输入命名空间前缀。

PHPStorm configuring PHP namespaces

比上一个答案更简单:

转到设置 windows:语言和框架 -> PHP -> Composer,然后启用 IDE 设置与 composer.json 同步以加载PSR-0 & PSR-4 设置。

PS:PhpStorm 2020.3.2(构建号PS-203.7148.74,构建于 2021 年 1 月 27 日)

希望对大家有用!