回答一个非常古老但仍然相关的问题 -
我在这里找到了更好的解决方案 - 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 方式向视图添加了一个数据数组。数组中的每个索引
是另一个变量。
景色……
在 phpStorm 中 $test 将被突出显示为未定义的变量。解决这个问题
我们使用 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 也将链接
到它被创建的位置,在本例中是 index 方法
欢迎上课。
var 现在已定义并显示它是。
Ctrl+ 单击此方法链接将带您进入该方法
$test 是在哪里定义的。
以下是我自己在为我的项目添加自定义项时的一些发现:
如果您希望 CI 中的自定义应用程序库也可用于自动完成,那么以下两种情况可能会有所帮助:
1.对于自定义扩展库,例如扩展 CI_Upload 类的 MY_Upload
在 CI_phpstorm.php 中将 @property CI_Upload $upload 替换为 @property MY_Upload $upload
这将使 MY_Upload 的所有类变量和函数名称都可用于除 CI_Upload 之外的自动完成。
2。对于在 CI 应用程序中从头开始编写的完全自定义库 -
例如要从位于 application/libraries 文件夹中的 Custom_Library.php 启用自动完成功能,您需要添加到 CI_phpstorm.php @property Custom_Library $custom_library 中的 php 文档中