详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
作者:jingxian 发布时间:2023-09-06 14:34:52
1、设置字体、风格
代码主题选择Monokai会是彩色的代码。
2、配置CI代码提示
<1>下载代码提示项目:
https://github.com/topdown/phpStorm-CC-Helpers
<2>拷贝提示片段:
将CI_phpStorm.php,DB_active_rec.php(改名为DB_query_builder.php),my_models.php拷贝到网站根目录,即index.php同目录下。
<3>将CI核心类设为纯文本:
将system里面的core/Controller.php,core/Model.php,database/DB_query_builder.php右键设为plain text。
现在已经有代码完成功能了。
<4>实现model提示功能:
把Model类在my_models.php的注释里添加,注意把类名首字母大写改为小写。这样Model就能提示了。
<5>实现view提示:
<h2><?php
/**
* @see News::index()
* @var News $title
* @var News $news
*/
echo $title;
?></h2>
相应的controller类需要实现__toString()方法,就可以了。
按住ctrl+鼠标左键,就可以看到他来自于哪个类(ctrl+q显示注释),如果点击函数名则可以导航到那个函数。
<6>model子文件夹
在model再创建文件夹,比如创建这样一个model类:mod/Test1_model.php。
同样是在my_models.php里添加注释,但是忽略mod文件夹,当这个文件夹不存在一样:
@property test1_model $test1_model
但是在代码load的时候,这个文件夹要体现出来,这样体现出来也不会影响这个代码提示的:
$this->load->model('mod/test1_model');
$data['news2'] = $this->test1_model->getData();
<7>实现library自定义类提示功能
自定义代码会放在libraries里面,并且会放在一个单独的子文件夹里。因为这个代码可能会重用,这个子文件夹会单独做为一个git,而其他的代码则重用的可能性不大、紧扣本网站的独特业务逻辑,不考虑重用问题。那么这种自定义代码如何做代码提示?跟model是一样的:
@property Testzphp
$testzphp
然后在controller里:
$this->load->library('zphp/Testzphp');
$data['zphp'] = $this->testzphp->test(235);
3、git配置
将.idea添加到忽略清单。
4、拼写检查去掉
project settings ---> inspections ---> spelling ---> Typo的勾去掉
5、快捷键
<1>快速导航
当通过代码导航到对应的类-方法查看源代码之后,需要能快速的返回回来:ctrl+alt+左箭头/右箭头


猜你喜欢
- 方法一:def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] l
- 高性能异步爬虫目的:在爬虫中使用异步实现高性能的数据爬取操作异步爬虫的方式:- 多线程、多进程(不建议):好处:可以为相关阻塞的操作单独开启
- 之前我们已经安装了lnmp的环境,现在让我们来安装phpmyadmin。跟前一样,yum默认的库里是没有phpmyadmin的,我们需要从e
- 一、前期准备 此篇使用两种导入excel数据的
- 使用shell调用一个python文件,并向shell中传入参数,举例如下:p1='wang'p2='shuang&
- 上传完整django项目文件到服务器sftp ftp lrzsz都可以上传文件到服务器,看自己我django项目叫yunwei,主要app是
- 目前任务需要做一个界面程序,PyQt是非常方便的选择,QT丰富的控件以及python方便的编程。近期遇到界面中执行一些后台任务时界面卡死的情
- namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2,
- 利用python+ffmpeg合并B站视频及格式转换 B站客户端下载的视频一般有两种格式:早期的多为blv格式(由flv格式转换而来,音视频
- MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的
- Frontpage中的回车键有三种:enter、shift+enter、ctrl+enter。enter键对应于HTML中的<p>
- 前言:字体反爬是什么个意思?就是网站把自己的重要数据不直接的在源代码中呈现出来,而是通过相应字体的编码,与一个字体文件(一般后缀为ttf或w
- 初学Python,这个问题搞了我好久,现在来分享下我的解决思路,希望可以帮到大家。先说下python引入模块的顺序:首先现在当前文件夹下查找
- asp十进制转二进制;二进制转十进制;二进制转十六进制;十六进制转二进制;八进制转二进制'二进制转八进制;八进制转十进制;十六进制转
- 我们从一个测试开始。下面这个函数的功能是什么? def foo(lst): a = 0 for i in
- 如何修改程序默认时区由于系统安装时时区可能选择不对,并不是中国的东八区,导致依赖于日期时间函数无法正常使用找到一个比较简单的方法程序启动时加
- 问题描述使用 Navicat 导入之前转储好的 sql 文件,报错错误原因在信息日志当中往上翻,发现没有选择数据库,所以报错的原因就是没有提
- 语法 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 参
- 本文实例讲述了python实现向ppt文件里插入新幻灯片页面的方法。分享给大家供大家参考。具体实现方法如下:# -*- coding: UT
- 我就废话不多说了,大家还是直接看代码吧~import tensorflow as tfimport syswith tf.variable_