![](/img/trans.png)
[英]Autocomplete (AKA Code Completion) with CodeIgniter libraries and PhpStorm
[英]Partial code completion PHPStorm CodeIgniter 3
(在Mac OS X Yosemite 10.10.3上运行的具有CodeIgniter 3的PHPStorm版本8.0.3)
如标题所示,我目前遇到部分代码完成。
一开始我什么都没有,我使用以下链接添加了部分内容:
例如,现在我可以看到$this->...
的代码完成,因此一开始就给了我一些我没有的选项。
当我使用$query->row_array();
时,我确实从PHPStorm收到“未找到”方法警告消息$query->row_array();
在分配$query = $this->db->get_where('news', array('slug' => $slug));
。 因此,在这种情况下,我的代码完成无法正常工作(无法找到它)。
此类的完整代码在下面。
class News_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function get_news($slug = FALSE)
{
if($slug === FALSE)
{
$query = $this->db->get('news');
return $query->result_array();
}
$query = $this->db->get_where('news', array('slug' => $slug));
return $query->row_array();
}
}
当我搜索方法“ row_array”时,可以在“系统”>“数据库”>“ db_result.php”下找到它。 这样就定义了,但是PHPStorm无法给我代码完成
我怎样才能解决这个问题?
据我了解。
只要您遵循以下选项之一
选项1 =文件>设置>目录>添加内容根>在phpStorm-CC-helpers中选择相关目录>标记资源根
选项2 =在项目窗口中,右键单击“外部库”>“配置PHP包含路径”,然后将路径添加到相关的phpStorm-CC-helpers
然后根据帮助程序注释, /CI_DB_active_record
是调用get_where
时返回的get_where
。 确保将文件/system/database/DB_active_rec.php
标记为纯文本,以便IDE可以对其进行解析以实现自动完成。
如果您使用的是CodeIgniter 3, /system/database/DB_active_rec.php
从CodeIgniter源中删除/system/database/DB_active_rec.php
和/CI_DB_active_record
类,因此将找不到该助手所引用的/CI_DB_active_record
的引用。
我刚刚测试了一下,它可以确认它确实有效,虽然不理想,但会为$ query var产生自动完成功能。
我在我的项目路线中使用了它。 https://gist.github.com/gentoid/4353692
然后,您必须执行以下代码:
public function index($slug)
{
/** @var CI_DB_result $query */
$query = $this->db->get();
//this will now produce auto complete in PHPStorm because
//it knows that object the $query var contains.
//$query->
}
你也可以做到这一点
/**
* @return CI_DB_result
*/
public function getData()
{
return $this->db->get();
}
public function test()
{
$query = $this->getData();
//this will now produce auto complete in PHPStorm because
//it knows that object the $query var contains.
//$query->
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.