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中的 == 运算符进行字符串比较
Nov 26 PHP
php目录管理函数小结
Sep 10 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
PHP文件上传类实例详解
Apr 08 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
微信小程序登录session的使用
2019/03/17 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
如何通过python画loss曲线的方法
2019/06/26 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
什么是Smart Navigation?
2016/07/03 面试题
人事专员职责
2014/02/22 职场文书
小学亲子活动总结
2014/07/01 职场文书
医学生求职信
2014/07/01 职场文书
装修活动策划方案
2014/08/27 职场文书
个人授权委托书
2014/09/15 职场文书
陪护人员误工证明
2015/06/24 职场文书
初中数学教学随笔
2015/08/15 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫