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

Mif*_*fas 14 codeigniter autocomplete phpstorm

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

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

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

例如在netbeans中如果我键入

$res = $this->db->select('*')->
Run Code Online (Sandbox Code Playgroud)

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

Sab*_*bir 29

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

标记为纯文本

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

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

这就是所有Mifas链接都做同样的事情

  • 此外,这对您的案例也很方便http://drsaada.blogspot.com/2013/10/codeigniter-phpstorm-autocomplete-trick.html @Wasim (2认同)

Shr*_*nik 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
Run Code Online (Sandbox Code Playgroud)

将这些文件标记为纯文本会阻止phpStorm将它们作为源索引.

我认为链接中的解决方案更好,因为它解释了所执行步骤背后的基本原理.

它还解释了我们如何在视图中实现代码完成并修复未定义的变量.

再次从原始来源引用,以便于参考和保存:

视图中的代码完成并修复未定义的变量.

示例控制器代码.

public function index()
{
  // Example view vars
  $data['test'] = 'Testing vars in CodeIgniter!     This is from $data["test"].';

  $this->load->view('welcome_message', $data);

}
Run Code Online (Sandbox Code Playgroud)

我们在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>
Run Code Online (Sandbox Code Playgroud)

以这种方式记录不仅修复了phpStorm错误/警告,还为我们提供了$ test的文档弹出窗口.@see也将链接到它创建的位置,在本例中是Welcome类中的索引方法.

现在已定义var并显示它.

按住Ctrl +单击此方法链接将使您正确定义$ test的方法.

这里有一些我自己的发现,同时为我的项目添加自定义:

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

1.对于自定义扩展库,例如MY_Upload,扩展CI_Upload类

替换@property CI_Upload $upload@property MY_Upload $uploadCI_phpstorm.php

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

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

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

  • @oɔɯǝɹ感谢您查看我的第一篇文章.已根据建议进行了修改.希望你发现它们合适. (2认同)

Mif*_*fas 14

我找到了.

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

请按照阅读说明进行操作