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防注
Jan 15 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
php的zip解压缩类pclzip使用示例
Mar 14 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
PHP7 参数处理机制修改
Mar 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
javascript 小型动画组件与实现代码
2010/06/02 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php开发工具有哪五款
2015/11/09 PHP
php四种定界符详解
2017/02/16 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
简单了解python PEP的一些知识
2019/07/13 Python
python3.7 的新特性详解
2019/07/25 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
教导处工作制度
2014/01/18 职场文书
医学生求职信
2014/07/01 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
python缺失值填充方法示例代码
2022/12/24 Python