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 相关文章推荐
Discuz! Passport 通行证整合
Mar 27 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php反弹shell实现代码
Apr 22 PHP
深入密码加salt原理的分析
Jun 06 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
php格式文件打开的四种方法
Feb 24 PHP
php实现小程序支付完整版
Oct 09 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 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/15 PHP
php生成excel列序号代码实例
2013/12/24 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
简单实现PHP留言板功能
2016/12/21 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
Python实现股市信息下载的方法
2015/06/15 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python守护线程用法实例
2017/06/23 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
wxPython多个窗口的基本结构
2019/11/19 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
巴西世界杯32强口号
2014/06/05 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
警察群众路线整改措施
2014/09/26 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2015年档案室工作总结
2015/05/23 职场文书
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫