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 EOT定界符的使用详解
Sep 30 PHP
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php简单操作mysql数据库的类
Apr 16 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 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
十天学会php之第一天
2006/10/09 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
Cookie 小记
2010/04/01 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
vuex操作state对象的实例代码
2018/04/25 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
理解Python中的类与实例
2015/04/27 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
主题婚礼策划方案
2014/02/10 职场文书
联谊活动总结
2014/08/28 职场文书
九一八事变演讲稿
2014/09/05 职场文书
企业承诺书格式范文
2015/04/28 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android