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 取得瑞年与平年的天数的代码
Aug 10 PHP
php更改目录及子目录下所有的文件后缀的代码
Sep 24 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
php中inlcude()性能对比详解
Sep 16 PHP
PHP APC的安装与使用详解
Jun 13 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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
FCKeditor的安装(PHP)
2007/01/13 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
原生js实现放大镜
2017/02/20 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python数据结构之单链表详解
2017/09/12 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
pandas的相关系数与协方差实例
2019/12/27 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
积极分子思想汇报
2014/01/04 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
推销搭讪开场白
2015/05/28 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
聊一聊python常用的编程模块
2021/05/14 Python
Python合并pdf文件的工具
2021/07/01 Python