如何在PHPStorm中为CodeIgniter框架启用自动完成

时间:2012-10-01 09:05:39

标签: codeigniter autocomplete phpstorm

在CodeIgniter Project中,我通常使用以下命令来执行sql。

$res = $this->db->select('*')
                 ->from('customer')
                 ->where('customer.id', $id)
                 ->get();

但不幸的是我的PHP Storm(5.0)不支持多个自动完成(我不知道怎么说)

例如在netbeans中如果我输入

$res = $this->db->select('*')->

它将自动弹出该功能的其余部分。但在PHPStorm它并没有畏缩。 它的工作一级自动完成。

3 个答案:

答案 0 :(得分:28)

下载https://github.com/topdown/phpStorm-CC-Helpers/downloads

标记为纯文本

  • /system/core/Controller.php
  • /system/core/Model.php
  • /system/database/DB_active_rec.php

然后解压缩下载的存档,将其复制到项目根目录

这就是全部

虽然Mifas链接也是如此

答案 1 :(得分:22)

回答一个非常古老但仍然相关的问题 -

我在这里找到了一个更好的解决方案 - 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将突出显示为未定义的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也会链接   到它创建的位置,在这种情况下是索引方法   欢迎上课。

     

现在定义了var并显示它是。

     

Ctrl +单击此方法链接将为您带来该方法的权利   其中$ test被定义。

以下是我为项目添加自定义项时的一些发现:

如果您希望CI中的自定义应用程序库可用于自动完成,那么这两种情况可能会有所帮助:

<强> 1。对于自定义扩展库,例如MY_Upload扩展CI_Upload类

@property CI_Upload $upload替换为CI_phpstorm.php中的@property MY_Upload $upload

除了CI_Upload之外,这将使MY_Upload的所有类变量和函数名都可用于自动完成。

<强> 2。对于在CI应用程序中从头开始编写的完全自定义库 -

例如要从驻留在application / libraries文件夹中的Custom_Library.php启用自动完成,您需要在CI_phpstorm.php中添加到php文档@property Custom_Library $custom_library

答案 2 :(得分:14)

我找到了。

https://github.com/topdown/phpStorm-CC-Helpers

请按照阅读说明进行操作