回答一个非常古老但仍然相关的问题 -
我在这里找到了一个更好的解决方案 - http://validwebs.com/346/code-completion-for-codeigniter-in-phpstorm/巧合的是,它来自同一作者/项目所有者 Jeff Behnke。
引用其中的内容,应在 Sabir 的回答中继续阅读 -
标记为纯文本
/system/core/Controller.php
/system/core/Model.php
/system/database/DB_active_rec.php
将这些文件标记为纯文本会阻止 phpStorm 将它们索引为源。
我认为链接中的解决方案更好,因为它解释了执行步骤背后的基本原理。
它还解释了我们如何在视图中实现代码完成并修复未定义的变量。
为了便于参考和保存,这里再次引用原始来源:
视图中的代码完成和修复未定义的变量。
示例控制器代码。
public function index()
{
// Example view vars
$data['test'] = 'Testing vars in CodeIgniter! This is from $data["test"].';
$this->load->view('welcome_message', $data);
}
我们以 CI 方式向视图中添加了一个数据数组。数组中的每个索引都是另一个变量。
景色……</p>
在 phpStorm 中 $test 将突出显示为未定义的 var。为了解决这个问题,我们使用 phpDoc 注释。
<p style="font-weight: bold;">
<?php
/**
* $data array holds the $test value
*
* @see Welcome::index()
* @var Welcome $test
*/
echo $test;
?>
</p>
以这种方式记录不仅可以修复 phpStorm 错误/警告,还可以为我们提供 $test 的文档弹出窗口。@see 也将链接到它创建的位置,在本例中是 Welcome 类中的 index 方法。
var 现在已定义并显示它是。
Ctrl+ 单击此方法链接将带您进入定义 $test 的方法。
以下是我自己在为我的项目添加自定义项时的一些发现:
如果您希望 CI 中的自定义应用程序库也可用于自动完成,那么以下两种情况可能会有所帮助:
1.对于自定义扩展库如MY_Upload扩展CI_Upload类
替换@property CI_Upload $upload
为@property MY_Upload $upload
CI_phpstorm.php
除了 CI_Upload 之外,这将使 MY_Upload 的所有类变量和函数名称都可用于自动完成。
2. 对于在 CI 应用程序中从头开始编写的完全自定义库 -
例如,要从位于 application/libraries 文件夹中的 Custom_Library.php 启用自动完成,您需要添加到 CI_phpstorm.php 中的 php 文档@property Custom_Library $custom_library