CI框架中libraries,helpers,hooks文件夹详细说明
1.library文件夹
如果你想扩展CI的功能,那么就把你的类库放在这,注意,这个文件夹是有class组成的,可以看看如果加载library注意事项!
2.helper文件夹
如果你需要使用一些函数来帮你完成一些小功能,那么就把它放着,这里都是过程式的代码而不是类,一般helper是用于view的,
使用方法如下:
$this->load->helper('filename')
filename是辅助函数对应的文件名,不包括_helper.php扩展名。文件名应该保存为:filename_helper.php,放在helper文件夹下!
3.hooks文件夹
存放你创建的钩子。钩子是 用来装载其它文件的控制方法,不能被控制器等调用,是系统自动调用的。当 CodeIgniter
运行后,它会产生出一个特殊的进程。
当然,您可以自定义一些动作来替代程序运行过程中的某些阶段。例如,您可以在控制器刚刚载入前或刚刚载入后来运行特定的脚本,或者在其他时刻来触发您的脚本。
CI的七个挂载点:
pre_system
系统执行的早期调用.仅仅在benchmark 和 hooks 类 加载完毕的时候. 没有执行路由或者其它的过程.
pre_controller
在调用你的任何控制器之前调用.此时所用的基础类,路由选择和安全性检查都已完成.
post_controller_constructor
在你的控制器实例化之后,任何方法调用之前调用.
post_controller
在你的控制器完全运行之后调用.
display_override
覆盖_display()函数, 用来在系统执行末尾向web浏览器发送最终页面.这允许你用自己的方法来显示.注意,你需要通过$this->CI =& get_instance()引用 CI 超级对象,然后这样的最终数据可以通过调用$this->CI->output->get_output()来获得。
cache_override
可以让你调用自己的函数来取代output类中的_display_cache()函数.这可以让你使用自己的缓存显示方法
post_system
在最终着色页面发送到浏览器之后,浏览器接收完最终数据的系统执行末尾调用
关于钩子的使用,手册上有详细的使用说明,截图如下:
相关推荐
-
php CI框架插入一条或多条sql记录示例
1.插入一条记录 $data = array( 'title' => 'My title' , 'name' => 'My Name' , 'date' => 'My date' ); $this->db->insert('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date') 2.插入多条记录 $data
-
CI框架Session.php源码分析
CI的Session并不是原生的session,正是我前面所有的cookie based session,另外,CI可以根据用户选择配置是否将session存入数据库中,本人很喜欢这个功能,还有就是"闪出数据"的功能,既闪出数据只是对下次服务器请求可以,之后就会被自动清除.常见使用方法有: $this->session->set_userdata('some_name', 'some_value'); //设置session数据 $this->session->
-
CI框架实现框架前后端分离的方法详解
本文实例分析了CI框架实现框架前后端分离的方法.分享给大家供大家参考,具体如下: 我们在使用CI框架开发中(或者使用所有的其他框架开发中),总是习惯于将所开发项目的前端和后台分离开来,将各自的控制器.模型或视图放到不同的文件夹中.在这一点上ThinkPHP框架要比CI框架更要方便一些.这篇博文我们就讲述如何实现根据CI框架开发将前后端实现分离.(本文以本人开发的Pkadmin后台管理系统为例,Pkadmin后台管理系统是基于Codeigniter_v3.1.0框架和Olive Admin后台模版
-
CI框架自动加载session出现报错的解决办法
很多程序员在CI中使用session的时候,开启自动加载session之后网站就报错了,具体错误信息如下:In order to use the Session class you are required to set an encryption key 下面一起来看问题解决办法. 提示信息说明:如果想用session类的话就必须要设置一个加密的密钥!那就给设置一个吧,毕竟也是出于安全考虑. 打开application/config/config.php找到Encryption Key 复制代
-
php ci框架验证码实例分析
php代码: 复制代码 代码如下: <?php class Captcha_code{ var $width='60'; var $num='4'; var $height='20'; var $name='randcode'; public function __construct($conf="") { if($conf!="") { foreach($conf as $key=>$value) { $this->$key=$
-
CI框架开发新浪微博登录接口源码完整版
首先来看下流程:流程原理: 1.通过code获得access_token通过授权,并获取用户的信息(包括用户u_id)(这个u_id在后面的第三方登录表里面叫sina_id,那个表是需要自己建的) 2.查询第三方登录表,如果不存在用户sina_id,分2种情况,一:用户在平台已经有帐号,这时需要把平台(比如:平台的用户表是:user_reg)用户id绑定到第三方登录表(比如是:third_login表),然后就让客户登录;
-
CI框架入门示例之数据库取数据完整实现方法
本文实例讲述了CI框架入门示例之数据库取数据完整实现方法.是写给初学者看的,这是最简单可以调通的例子.分享给大家供大家参考.具体实现方法如下: 1.下载CI框架 2.配置 database.php配置: 为数据库服务器设置 connection 参数: 复制代码 代码如下: $db['default']['hostname'] = "your-db-host"; $db['default']['username'] = "your-username"; $db[
-
CI框架源码阅读,系统常量文件constants.php的配置
配置系统常量 1.当文件系统工作的时候检查并配置这些首选项文件系统运行的时候这些默认的值会适当的增加系统的安全性,但是在php或apache的底层单独的为每各用户开一个进程的时候,使用八进制的值永远是正确的FILE_READ_MODE 读取文件的模式FILE_WRITE_MODE 写入文件的模式DIR_READ_MODE 读取目录的模式DIR_WRITE_MODE 写入目录的模式 2.文件流模式当我们使用fopen()/popen()的时候需要这些模式define('FOPEN_READ
-
php ci框架中加载css和js文件失败的解决方法
在将html页面整合到ci框架里面的时候,加载css和js失败,弄了半天发现ci框架是入口的框架,对框架中文件的所有请求都需要经过index.php处理完成,当加载外部的css和js文件的时候要使用base_url()函数处理外部的链接. 比如: 在config配置文件中的base_url为:" localhost:8080/项目名称/ " 在控制器中访问application/resource/aaa.js文件 相对路径<script src= "resource/a
-
CI框架中cookie的操作方法分析
本文实例讲述了CI框架中cookie的操作方法.分享给大家供大家参考.具体分析如下: 第一种设置cookie的方式:采用php原生态的方法设置的cookie的值 复制代码 代码如下: setcookie("user_id",$user_info['user_id'],86500); setcookie("username",$user_info['username'],86500); setcookie("password",$user_in
-
如何解决CI框架的Disallowed Key Characters错误提示
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清空浏览器历史记录和cookies后. 刷新就没问题了.有时候.打开不同的浏览器.有的浏览器会有问题.有的就不会. 解决 CodeIgniter 框架应用中,出现Disallowed Key Characters错误提示的方法.找到/system/core文件夹下的Input文件,将下面的代码: 复制
-
CI框架中site_url()和base_url()的区别
在使用CI框架的使用经常碰到跳转和路径方面的问题,site_url()和base_url()很容易混淆,下面来说说他们的区别! 假如你config文件里面的base_url和index_page是这样定义的: config['base_url'] = "http://domain.com/"; config['index_page'] = "index.php"; 那么你若使用site_url("news/php/2");则实际url为 http
随机推荐
- Jquery解析json字符串及json数组的方法
- [PHP]常用正则表达式收集
- 利用Python的Django框架中的ORM建立查询API
- C#面向对象设计的七大原则
- JavaScript中的Repaint和Reflow用法详解
- Mongoose中document与object的区别示例详解
- easyUI combobox实现联动效果
- 为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
- jquery-1.2.6得到焦点与失去焦点的写法
- JavaScript DOM 学习第七章 表单的扩展
- 浅谈Nodejs应用主文件index.js
- 我教你学之系统性能优化注册表修改实例(2)
- C语言基础之malloc和free函数详解
- Java语言求解完美数代码分析
- PHP生成器功能与用法实例分析
- spring boot静态变量注入配置文件详解
- java使用RSA与AES加密解密的实例代码详解
- python多线程同步之文件读写控制
- Vue实现商品详情页的评价列表功能
- jsp实现textarea中的文字保存换行空格存到数据库的方法