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 相关文章推荐
关于时间计算的结总
Dec 06 PHP
php下将XML转换为数组
Jan 01 PHP
php去除重复字的实现代码
Sep 16 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
apache php模块整合操作指南
Nov 16 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
PHP中类的自动加载的方法
Mar 17 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
php实例化对象的实例方法
Nov 17 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中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
python框架中flask知识点总结
2018/08/17 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
如何通过python实现人脸识别验证
2020/01/17 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
好人好事新闻稿
2015/07/17 职场文书
2015年教师节广播稿
2015/08/19 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
Python如何将list中的string转换为int
2022/07/15 Ruby