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 相关文章推荐
资料注册后发信小技巧
Oct 09 PHP
php 分库分表hash算法
Nov 12 PHP
php获得用户ip地址的比较不错的方法
Feb 08 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
PHP中cookie知识点学习
May 06 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php 动态多文件上传
2009/01/18 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
社会实践自我鉴定
2013/11/07 职场文书
违反学校规定检讨书
2014/01/18 职场文书
给学校的建议书
2014/03/12 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android