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和js交互一例-PHP教程,PHP应用
Jan 03 PHP
php 生成饼图 三维饼图
Sep 28 PHP
PHP取得一个类的属性和方法的实现代码
May 22 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
PHP CURL使用详解
Mar 21 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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实现邮件发送并带有附件
2014/01/24 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
广告显示判断
2006/08/31 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
javascript操作cookie
2017/01/17 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python实现购物程序思路及代码
2017/07/24 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python 字符串换行的多种方式
2018/09/06 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
使用python去除图片白色像素的实例
2019/12/12 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
技校个人求职信范文
2014/01/25 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
环境日宣传活动总结
2014/07/09 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
新手入门Mysql--sql执行过程
2021/06/20 MySQL
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers