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
9段PHP实用功能的代码推荐
Oct 14 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP+APACHE实现网址伪静态
Feb 22 PHP
Yii2实现ajax上传图片插件用法
Apr 28 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 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网页标题中文乱码的有效解决方法
2014/03/05 PHP
php查看当前Session的ID实例
2015/03/16 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
财务出纳岗位职责
2014/02/03 职场文书
市场专员岗位职责
2014/02/14 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
厂区绿化方案
2014/05/08 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis