如何使用 codeigniter 让 zend studio 自动完成
Posted
技术标签:
【中文标题】如何使用 codeigniter 让 zend studio 自动完成【英文标题】:how to get zend studio autocomplete with codeigniter 【发布时间】:2010-11-07 23:32:35 【问题描述】:我正在寻找一种好方法来为在 Zend Studio for Eclipse 中工作的 codeigniter 中的库自动完成和单击以供参考(无论叫什么)。
例如,如果我这样做 $this->load->library('dx_auth'); $this->dx_auth->get_user_id();
zend studio 不知道它是什么..
有一种 hacky 方法可以做到(见下文,source),但我觉得应该有更好的方法......
有人有什么想法吗?
// All of these are added so I get real auto complete
// I don't have to worry about it causing any problems with deployment
// as this file never gets called as I'm in php5 mode
// Core CI libraries
$config = new CI_Config();
$db = new CI_DB_active_record();
$email = new CI_Email();
$form_validation = new CI_Form_validation();
$input = new CI_Input();
$load = new CI_Loader();
$router = new CI_Router();
$session = new CI_Session();
$table = new CI_Table();
$unit = new CI_Unit_test();
$uri = new CI_URI();
【问题讨论】:
【参考方案1】:将 CI 的库路径添加为项目的包含路径。
-
在 PHP Explorer 中,打开您的项目并右键单击 Include Paths
从上下文菜单中选择配置
然后在包含路径对话框中,选择库选项卡
点击添加外部文件夹...
浏览到 CI 的本地副本并选择它的库目录(保存这些类文件的位置)
点击完成
瞧,你来了!
我应该注意,您还可以在创建项目时定义包含路径。
【讨论】:
这个问题和答案都是四年半的。到现在为止,CI 和 Zend Studio 都将发生重大变化。【参考方案2】:正如彼得的回答所指示的,添加包含路径绝对是最好的方法。但是,这依赖于 CI 源代码中的 docblocks 是完整、准确且不含糊的。例如,如果方法@return
被声明为Some_Class|false
,则自动完成将不知道如何处理它。
要补充彼得的答案,您还可以强制 PDT/Eclipse/ZSfE 将任何变量视为特定类的实例,如下所示:
/* @var $varName Some_Class_Name */
【讨论】:
通过 cmets 进行类型强制的很棒的提示。我其实并不知道。 +!【参考方案3】:如果您从 SVN 等导入项目,那么您可能没有为此项目启用 PHP 支持。您可以通过右键单击您的项目 -> 配置 -> 添加 PHP 支持来启用它...
在 ZS 7.2.1 中测试
【讨论】:
我已经为这个启示寻找了三个漫长而烦人的小时。谢谢尤西!【参考方案4】:我使用的是zend studio 9, 这就是我所做的: 将 CI 的库路径添加为项目的包含路径。
$this->load->model('my_model');
$my_model = &$this->my_model;
$my_model instanceof my_model;//add this ,zend studio can autocomplete
$my_model->myfunc($foo,$bar);
【讨论】:
以上是关于如何使用 codeigniter 让 zend studio 自动完成的主要内容,如果未能解决你的问题,请参考以下文章
开发大流量PHP网站,用啥框架比较好?codeigniter?Zend Framework?
判断帖子是不是来自codeigniter中的ajax调用的方法?