用户
 找回密码
 入住 CI 中国社区
搜索
查看: 17126|回复: 7
收起左侧

[其它 Other] 【搬】PhpStorm支持CI框架的自动补全!

[复制链接]
发表于 2015-5-6 14:30:58 | 显示全部楼层 |阅读模式
本帖最后由 Mayday0602 于 2015-5-6 14:30 编辑

发帖前搜索了一下论坛,没有看到相关的资源
所以做一个小白的搬运工

代码参考:https://github.com/topdown/phpStorm-CC-Helpers
大神的仓库里面还有其他一些ide&框架的自动提示支持  英文好的可以自行搬运。

环境说明:
phpstorm 7.1 (以下简称为PS)
CI 2.2.2

解决问题:
1. PS里面没有CI框架的自动提示,model找方法很抓狂?($this->load 之后再无下文)
2. model的方法没有自动提示,每次都要对照着model结构图来写。($this->xxx_model-> 之后再无下文)

实现效果:
1. PS完全支持CI的各种书写格式,从此告别“盲人”开发阶段!(广告- -)

教程开始:
1. 下载CI框架对应的3个文件到一个文件夹比如AutoHelper(会git的当我没说)
2. 在你项目的External Libraries上右键->Configure PHP Include Path

3. 将刚才的AutoHelper文件夹添加到里面并保存

4. 之后 选中3个核心文件->右键->Mark as Plain Text

现在你的load就已经出现自动提示了!

为什么我load的xxx_model还没有提示?
5. 打开刚才添加的3个文件中的my_models.php
将对应的xxx_model添加到开头的注释里面


现在你的xxx_model的提示也全了!

个人总结:
1. 其实老外就是改变了PS解析的来源,通过添加注释的方法获得框架相关的自动提示
2. 由1条可以得,不管你load不load xxx_model 只要你添加到my_model.php的注释区,都会有自动提示(所以是否已经load对应model要自己判断哦!)

问题:
1. 为什么我添加了却没有提示?
答:
  a. 就我这个项目而言,我在sadmin里面有自应用,PS在解析的时候会发生多处声明的错误而导致自动提示失败
  解决办法:将自应用里面的相关文件统统"Mark as Plain Text"!
  统一解决办法: 鼠标移到CI_Controller上(通常已经有警告提示)查看报错原因。并尝试解决。

彩蛋:
1. 老项目的话很多model,不好添加,大神写脚本,windows下面的话提供朋友写的一个注释生成器,很简单,一用就会。 ci_model_property.rar (4.84 KB, 下载次数: 431)
2. 如果加了MY_Service怎么处理?(参考文章:http://www.phpddt.com/php/ci-service.html)
  a. 在添加的3个文件中的CI_phpStorm.php 中  找到 CI_loader 修改为 MY_loader (获得load->service的提示)
  b. 在MY_Service开头参考添加自己需要提示的模块注释(@property xxx_model $xxx_model)



发表于 2015-8-3 18:06:14 | 显示全部楼层
2个问题
1. 如果Model里面层次比较多时候怎么办?比如model/dao/user.php,注释是直接加@property user_model $user_model?我有试过,不行。
2. 3.0里面是没有DB_active_rec.php,改成DB_query_builder,这个也可以备注下。
发表于 2015-8-5 09:51:34 | 显示全部楼层
我的是phpstorm9.0的,放进去之后不起作用呢?是把autoHelper这个文件夹放在项目的根目录下面吗?
发表于 2015-8-24 15:46:06 | 显示全部楼层
mac版的知道怎么弄吗
发表于 2016-9-18 15:42:23 | 显示全部楼层
有个问题 , 控制器中 load model会有提示 ,而且$this->user_model->getXXx 也能提示,但是如果是在 model里面 load  就不能提示了
发表于 2016-9-18 15:46:58 | 显示全部楼层
phpstudy_ 发表于 2016-9-18 15:42
有个问题 , 控制器中 load model会有提示 ,而且$this->user_model->getXXx 也能提示,但是如果是在 model ...


没事 解决了, 把生成的注释添加到 CI_phpStrom.php 就可以了。。。。
发表于 2016-12-16 15:59:33 | 显示全部楼层
abel_1990 发表于 2015-8-3 18:06
**** 作者被禁止或删除 内容自动屏蔽 ****

请问,之后版本里的DB_query_builder,也需要标记为纯文本吗?
发表于 2016-12-16 16:11:50 | 显示全部楼层
请问,我这里 $this->user_model能提示,但$this->user_model->getXXx 获取model里的方法就不提示了呢?
能想想办法吗

本版积分规则