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中的登陆login
Jan 18 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
PHP编写RESTful接口
Feb 23 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 PHP
浅析PHP7的多进程及实例源码
Apr 14 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 引用文件技巧
2010/03/02 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
js form action动态修改方法
2008/11/04 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
常用的js方法合集
2017/03/10 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
英国网上花店:Bunches
2016/11/29 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
软件工程师面试题
2012/06/25 面试题
九年级英语教学反思
2016/02/15 职场文书
合作协议书格式范本
2016/03/21 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python