codeigniter钩子的使用】的更多相关文章

CodeIgniter 的钩子功能,使得我们可以在不修改系统核心文件的基础上,来改变或增加系统的核心运行功能.可是钩子究竟该怎么用呢?虽然不是很难,不过很多刚用ci的朋友可能还是不明白怎么用. 通过本文的简单实例,大家一下就会明白的. 手册非常好,大家不要舍近求远哦!先看手册,不懂的地方再去别的地方寻求答案,一点个人的建议. 使用hooks,需要以下三步: 在config/config.php中开启; $config['enable_hooks'] = TRUE; 钩子是在 applicatio…
钩子,英文为hooks.在程序中应用相当广泛,但是究竟什么是钩子呢?本人介绍一下目前本人对钩子的理解和相关心得. 假如有这么一段程序流: function fun(){ funA(); funB(); } fun函数正常的执行顺序,肯定是执行完funA,然后执行funB,然后fun函数就结束了.但是,假如我们想对函数做一些变化.比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置.这个时候就可以发挥钩子的力量了. 我们可以在functi…
w Task Scheduling - Laravel - The PHP Framework For Web Artisanshttps://laravel.com/docs/5.4/scheduling#task-hooks w Hooks - Extending the Framework Core CodeIgniter’s Hooks feature provides a means to tap into and modify the inner workings of the fr…
最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做…
CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存.输出等).例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = TRUE;),通过添加特定的钩子,可以让系统在特定的时刻触发特定的脚本: $hook['post_system'] = array( 'class' => 'frameLog', 'function' => 'postLog', 'filename' => 'post_system.php'…
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入口 ind…
配置说明 $config['language']:指定项目语言包.需要注意的时Codeigniter自带的类库错误提示语言包位于/system/language/english/目录下,当这里配置非english时, 如果需要用到这些类库,则需要拷贝语言包到指定的目录中,否则会出现load出错. $config['charset']:设置系统使用的编码,在某些需要指定编码的函数中会用到,系统.数据库统一编码即可. $config['enable_hooks']:钩子开关控制,设置为true表示允…
Codeigniter整合Tank Auth权限类库的教程一开始找了很多CodeIgniter的类库,觉得都不怎么样,后来干脆自己通过CI的钩子系统写了权限管理.但是还是不怎么满意,后来有人推荐tank_auth,感觉挺好的,配置简单,使用也简单,而且作者也一直在更新,现在是1.0 一开始找了很多CodeIgniter的类库,觉得都不怎么样,后来干脆自己通过CI的钩子系统写了权限管理.但是还是不怎么满意,后来有人推荐tank_auth,感觉挺好的,配置简单,使用也简单,而且作者也一直在更新,现在…
原文:使用 CodeIgniter 框架快速开发 PHP 应用(三) 分析网站结构既然我们已经安装 CI ,我们开始了解它如何工作.读者已经知道 CI 实现了MVC式样. 通过对目录和文件的内容进行分类, 而不是让代码大块大块地纠集在一起.这一章,我们将会对 MVC 理论做个简短的介绍, 然后再介绍 CI 的MVC实现方式.特别地,要了解那些目录和文件如何互相交换信息?网站结构是怎样的?以及CI是如何自如地动作于其中的?这一章将会介绍:.MVC 如何架构一个动态网站.CI如何接收和分析reque…
转自网络:http://my.oschina.net/scholer/blog/99226 这个本来是很基础的东西,基本上用过CI的人都知道这些,原本是不消说的~但是因为毕业论文是关于CodeIgniter的,所以我必须把大大小小的东西都写出来做成记录~ CodeInigter,一个轻量,功能全面的PHP框架,使开发者可以轻易的使用MVC的结构来开发web应用. 下载一份CI的代码(最新的为2012.10.08更新的2.1.3),我们可以看到根目录下只有五个文件/文件夹,其中user_guide…
转载于:https://www.cnblogs.com/xiaoxiaoqingyi/p/6901654.html 转载仅为以后自己学习. 业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M多,而且使用起来方便快捷,适用于一些简单的功能开发,以及做app 接口.       该框架整个流程图如下: index.php 文件作为前端控制器,初始化运行…
这篇文章学习CI框架的钩子特性. hooks是CI框架提供的一种机制,允许你在程序框架运行流程的某个阶段执行你自己的一些代码.比如系统运行前,CI_Controller调用前,系统运行结束后等特定的时间节点,执行自定义的函数.如同官方所言,CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件. hooks的逻辑主要写在system/core/Hooks.php的CI_Hooks类中.框架在Codeigniter.php中载入该类. /* * ------…
CodeIgniter.php是CI框架的核心文件.它在前端控制器index.php之后运行,加载各类基础组件,执行请求.文件执行完成后,这次请求也就结束了.所以,该文只能对CodeIgniter.php做一个大致的讲解,中间如果遇到重要部分,会新写一篇日志单独详细讲解. CI框架的注释非常的详细和规范.官方对这个文件的解释就是 System Initialization File(系统初始化文件),加载基础类库和执行请求.它不同于index.php只是设置环境和定义重要路径,而是要深入框架的核…
------------------------------------------------------------------------------------------------------ 进入框架入口文件index.php => 定义应用的当前环境(用于设置错误模式):define('ENVIRONMENT', 'development'); 设置系统文件目录名:$system_path = 'system'; 设置应用文件目录名:$application_folder = '…
钩子 - 扩展框架核心 CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件.CodeIgniter 的运行遵循着一个特定的流程,你可以参考这个页面的 应用程序流程图 .但是,有些时候你可能希望在 执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本. 启用钩子 钩子特性可以在 application/config/config.php 文件中全局的启用或禁用, 设置下面这个参数: $config[…
总结Codeigniter的一些优秀特性 近期准备接手改进一个别人用Codeigniter写的项目.尽管之前也实用过CI,可是是全然按着自己的意思写的,没按CI的一些套路.用在公众的项目,不妨按框架规范来.所以还是总结一下,免得以后别人再接手的时候贻笑慷慨. 1. 首先是 MVC 假设你还不知道 MVC .应该尽快的学习,你会非常快的体会到在 Model 中数据訪问,在 Controller 中进行业务逻辑.在 Views 中编写 HTML 代码的价值.假设你之前没有使用过这样的模式写过程序,你…
1. myshop 2. |-----system 框架程序目录 3. |-----core 框架的核心程序 4. |-----CodeIgniter.php 引导性文件 5. |-----Common.php 加载基类库的公共函数 6. |-----Controller.php 基控制器类文件:CI_Controller 7. |-----Model.php 基模型类文件:CI_Model 8. |-----Config.php 配置类文件:CI_Config 9. |-----Input.p…
<code>//启动hooks //app/config/config.php $config['enable_hooks'] = TRUE; //hooks配置 ///app/config/hooks.php $hook['post_controller_constructor'][] = array( 'function' => 'check_ssl', 'filename' => 'ssl.php', 'filepath' => 'hooks', ); //插件编写 /…
http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI钩子写了一下,感觉还可以,做个小网站,小应用足够了,没必要搞得太复杂.看到很多人在网上问,这里把我们的方法分享一下,如果你有更好的实现,也请记得分享给我们.^_^ 通常我们后台路径看起来都会像下面这样: http://www.php-chongqing.com…
最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做…
CodeIgniter.php可以说是CI的核心,大部分MVC的流程都是在这个文件夹中处理的,其中加载了很多外部文件,完成CI的一次完整流程. 首先是定义了CI的版本(此处为CI 2.2.0),接下来是连续require了2个文件,core/Common.php,config/constants.php,接下来是设置错误处理. 注: 源码分析——CI到底做了些什么 CI的生命周期——system/core/CodeIgniter.php include('core/commons.php') 载…
NO1.学习要点: 一.CodeIgniter 框架的简介 二.CodeIgniter 框架的安装 三.CodeIgniter 框架的目录结构分析 四.CodeIgniter 框架是如何工作的? 五.CodeIgniter 框架中的控制器.视图.模型及数据库操作 六.CodeIgniter 框架中辅助函数.类库.适配器的学习 七.……  注: CI官方用户指南手册:http://codeigniter.org.cn/user_guide/toc.html PHP点点通CI源码分析:http://…
CI框架同意你在不改动系统核心代码的基础上加入或者更改系统的核心功能(如重写缓存.输出等). 比如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = TRUE;).通过加入特定的钩子,能够让系统在特定的时刻触发特定的脚本: $hook['post_system'] = array( 'class' => 'frameLog', 'function' => 'postLog', 'filename' => 'post_system.php…
安装Xhprof参考:http://www.cnblogs.com/qq917937712/p/8889001.html 第一步:配置config.php $config['enable_hooks'] = TRUE; 第二步:配置钩子 ci钩子使用手册:http://codeigniter.org.cn/user_guide/general/hooks.html $hook['pre_controller'] = array( 'class' => 'Xhprof', 'function' =…
ci 执行流程 index.php 文件 加载codeigniter文件 codeigniter部分里面加载的: 加载配置文件constants 加载全局公共函数core/Common.php 文件 全局变量获取变量 判断是否composer加载程序(个人感觉 还是单个加载的方便) 使用刚才加载的common里面的函数load_class 加载 Benchmark基准测试类(这个类主要用来记录程序的执行时间.内存使用.cpu使用等情况) 加载 钩子类 扩展用 不改变当前的ci核心 加载 配置文件…
昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了: 静态模块:使用 MutationObserver 扫描. 动态模块:通过 API 钩子来拦截路径属性. 提到钩子程序,大家会联想到传统应用程序里的 API Hook,以及各种外挂木马.当然,未必是系统函数,任何 CPU 指令都能被改写成跳转指令,以实现先运行自己的程序. 无论是在哪个层面,钩子程序的核心理念都是一样的:无需修改已有的程序,即可先执行我们的程序. 这是一种链式调用的模式.调用者无需关心…
通常情况下,Controller 中的方法可以通过 $this->config->item('item_name') 的方式来加载配置文件中的值 但是如果不继承 CI_Controller 这个方式就不能用了 这时候可以通过创建来自 CI_Controller 的引用来实现: $CI =& get_instance(); $item_value = $CI->config->item('item_name'); 详见官方文档: 在你的类库中使用 CodeIgniter 资源…
在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在CodeIgniter框架的入口文件就有一个配置项: /* *--------------------------------------------------------------- * VIEW DIRECTORY NAME *---------------------------------…
Runtime.getRuntime().addShutdownHook(shutdownHook);    这个方法的含义说明:        这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭.所以这些钩子可以在jvm关闭的时候进行内存清理.对象销毁等操作.   用途 1应用程序正常退出,在退出时执行特定的业务逻辑,或者关闭资源等操作. 2虚拟机非正常退出,比如…
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构.通过减少代码量,CodeIgniter 让你更加专注 于你的创造性工作. http://codeigniter.org.cn/user_guide/general/welcome.html 下图说明了整个系统的数据流程: index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源: Ro…