PhpStorm - Joomla 项目中未定义 class

PhpStorm - undefined class in Joomla project

我想在 Joomla 项目上使用 PhpStorm 但我不能在主 Joomla 类 上使用 "Go to Class Declaration" (Ctrl+B)。例如 JFactory::getApplication().

但是在自定义插件中使用我自己的功能,该选项效果很好。

那里可能有什么问题?

遗留代码

您只需要它来处理遗留代码。随着命名空间的引入,大多数 class 名称都发生了变化。

JFactory 现已不存在 class - 它已从核心中删除。为了兼容性,在 运行 时提供了一个 class 别名,因此 PHP 可以找到新的 class。 PhpStorm(和其他 IDEs)不知道这些别名(还有很多)。

存根

为了解决这个问题,Joomla 提供了一个存根,告诉 IDE 在哪里可以找到新的 class。只是 运行

$ php build/stubGenerator.php

这将在项目的根目录中生成一个包含正确信息的 stubs.php 文件。

新密码

对于新代码,不要使用那些旧的 class 名称 - 请改用它们的新名称。新的 class 名称使您的新代码更有可能 运行 在 Joomla! 4.0.