PhpStorm - Joomla 项目中未定义 class
PhpStorm - undefined class in Joomla project
我想在 Joomla 项目上使用 PhpStorm 但我不能在主 Joomla 类 上使用 "Go to Class Declaration" (Ctrl+B
)。例如 JFactory::getApplication()
.
但是在自定义插件中使用我自己的功能,该选项效果很好。
那里可能有什么问题?
- 我有 Joomla 支持插件。
- 我有 docblock 插件。
- 我试过使缓存无效。
遗留代码
您只需要它来处理遗留代码。随着命名空间的引入,大多数 class 名称都发生了变化。
JFactory 现已不存在 class - 它已从核心中删除。为了兼容性,在 运行 时提供了一个 class 别名,因此 PHP 可以找到新的 class。 PhpStorm(和其他 IDEs)不知道这些别名(还有很多)。
存根
为了解决这个问题,Joomla 提供了一个存根,告诉 IDE 在哪里可以找到新的 class。只是 运行
$ php build/stubGenerator.php
这将在项目的根目录中生成一个包含正确信息的 stubs.php
文件。
新密码
对于新代码,不要使用那些旧的 class 名称 - 请改用它们的新名称。新的 class 名称使您的新代码更有可能 运行 在 Joomla! 4.0.
我想在 Joomla 项目上使用 PhpStorm 但我不能在主 Joomla 类 上使用 "Go to Class Declaration" (Ctrl+B
)。例如 JFactory::getApplication()
.
但是在自定义插件中使用我自己的功能,该选项效果很好。
那里可能有什么问题?
- 我有 Joomla 支持插件。
- 我有 docblock 插件。
- 我试过使缓存无效。
遗留代码
您只需要它来处理遗留代码。随着命名空间的引入,大多数 class 名称都发生了变化。
JFactory 现已不存在 class - 它已从核心中删除。为了兼容性,在 运行 时提供了一个 class 别名,因此 PHP 可以找到新的 class。 PhpStorm(和其他 IDEs)不知道这些别名(还有很多)。
存根
为了解决这个问题,Joomla 提供了一个存根,告诉 IDE 在哪里可以找到新的 class。只是 运行
$ php build/stubGenerator.php
这将在项目的根目录中生成一个包含正确信息的 stubs.php
文件。
新密码
对于新代码,不要使用那些旧的 class 名称 - 请改用它们的新名称。新的 class 名称使您的新代码更有可能 运行 在 Joomla! 4.0.