CI框架附属类用法分析


Posted in PHP onDecember 26, 2018

本文实例讲述了CI框架附属类用法。分享给大家供大家参考,具体如下:

有些时候,你可能想在你的控制器之外新建一些类,但同时又希望 这些类还能访问 CodeIgniter 的资源

任何在你的控制器方法中初始化的类都可以简单的通过 get_instance() 函数来访问 CodeIgniter 资源。这个函数返回一个 CodeIgniter 对象。

通常来说,调用 CodeIgniter 的方法需要使用 $this

$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');

但是 $this 只能在你的控制器、模型或视图中使用,如果你想在 你自己的类中使用 CodeIgniter 类,你可以像下面这样做:

首先,将 CodeIgniter 对象赋值给一个变量:

$CI =& get_instance();

一旦你把 CodeIgniter 对象赋值给一个变量之后,你就可以使用这个变量 来 代替 $this

$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');

如果你在类中使用``get_instance()`` 函数,最好的方法是将它赋值给 一个属性 ,这样你就不用在每个方法里都调用 get_instance() 了。

例如:

class Example {
  protected $CI;
  // We'll use a constructor, as you can't directly call a function
  // from a property definition.
  public function __construct()
  {
    // Assign the CodeIgniter super-object
    $this->CI =& get_instance();
  }
  public function foo()
  {
    $this->CI->load->helper('url');
    redirect();
  }
  public function bar()
  {
    $this->CI->config->item('base_url');
  }
}

在上面的例子中, foo()bar() 方法在初始化 Example 类之后都可以正常工作,而不需要在每个方法里都调用 get_instance() 函数。

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php生成EXCEL的东东
Oct 09 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php获取英文姓名首字母的方法
Jul 13 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
php读取本地json文件的实例
Mar 07 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
php中用unset销毁变量并释放内存
May 10 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 #PHP
CI框架实现创建自定义类库的方法
Dec 25 #PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 #PHP
PHP使用SOAP调用API操作示例
Dec 25 #PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 #PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 #PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 #PHP
You might like
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP详细彻底学习Smarty
2008/03/27 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
Python实现大文件排序的方法
2015/07/10 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
Python 移动光标位置的方法
2019/01/20 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python tkinter基本属性详解
2019/09/16 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
禁毒宣传标语
2014/06/19 职场文书
工商管理自荐书
2014/07/06 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
党支部四风整改方案
2014/10/25 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
python 下载文件的几种方式分享
2021/04/07 Python