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获得当前的脚本网址
Dec 10 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
PHP多文件上传实例
Jul 09 PHP
php实现递归的三种基本方式
Jul 04 PHP
php命令行写shell实例详解
Jul 19 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
设定php简写功能的方法
Nov 28 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
图片按比例缩放函数
2006/06/26 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
几种响应式文字详解
2017/05/19 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
Python中使用ElementTree解析XML示例
2015/06/02 Python
Python检测网站链接是否已存在
2016/04/07 Python
python生成圆形图片的方法
2020/03/25 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Python实现购物车购物小程序
2018/04/18 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
一体化教学实施方案
2014/05/10 职场文书
生日宴会策划方案
2014/06/03 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
青年文明号汇报材料
2014/12/23 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
海底两万里读书笔记
2015/06/26 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python