codeigniter钩子的使用

CodeIgniter 的钩子功能,使得我们可以在不修改系统核心文件的基础上,来改变或增加系统的核心运行功能。可是钩子究竟该怎么用呢?虽然不是很难,不过很多刚用ci的朋友可能还是不明白怎么用。

通过本文的简单实例,大家一下就会明白的。

手册非常好,大家不要舍近求远哦!先看手册,不懂的地方再去别的地方寻求答案,一点个人的建议。

使用hooks,需要以下三步:

  1. 在config/config.php中开启;

    $config[‘enable_hooks‘] = TRUE;
  2. 钩子是在 application/config/hooks.php 文件中定义的;

    $hook[‘pre_controller‘] = array(
    //    ‘class‘ => ‘MyClass‘ //可选,所以俺就省了
        ‘function‘ => ‘is_login‘,
        ‘filename‘ => ‘check_login.php‘,
        ‘filepath‘ => ‘hooks‘,
        ‘params‘   => array(‘beer‘, ‘wine‘, ‘snacks‘) //也是可选,这里演示下用法
    );
  3. 在application/hooks/中新建check_login.php文件,编写自己的业务逻辑;

    <?php
    
    function is_login($param)
    {
        var_dump($param);exit;
    }

运行程序,页面打印出如下结果:

现在,大家应该明白钩子是怎么回事了。

时间: 2024-08-24 22:42:48

codeigniter钩子的使用的相关文章

谈PHP中的钩子

钩子,英文为hooks.在程序中应用相当广泛,但是究竟什么是钩子呢?本人介绍一下目前本人对钩子的理解和相关心得. 假如有这么一段程序流: 帮助 1 2 3 4 function fun(){      funA();      funB(); } fun函数正常的执行顺序,肯定是执行完funA,然后执行funB,然后fun函数就结束了.但是,假如我们想对函数做一些变化.比如说,fun 是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置.这个时候就可

CodeIgniter 如何解决URL含有中文字符串

codeIgniter默认的配置下是不允许URL中包含非ASCII字符的,如果URL中含非ASCII字符,那么CI会毫不客气的抛出错误.本文章向码农介绍CodeIgniter 如何解决URL含有中文字符串. 你 可能会说,那我把这个URL使用函数urlencode一下呢?不行.因为Web Server会在接收到一个被urlencode的URL后自动将其decode,然后在PHP里得到的这些字符串转换成他原来所代表的含义,并使用 Web Server自己的URL编码字符集(IIS6 中文版是GBK

CodeIgniter框架的下载及安装

CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包.初次学习Php,网上搜了很多php框架,最后选择了CodeIgniter.下面向码农介绍CodeIgniter框架的下载及安装. 安装环境:php5+mysql6.5+iis7 我的电脑是用来办公写文档用的,win7系统,不想换系统,所以就安装了win7自带的iis7. php下载的是最新的php-5.3.28-nts-Win32-VC9-x86 mysql也是下载最新的. 下载地址: php:http://wi

CodeIgniter框架——知识点汇总

NO1.学习要点: 一.CodeIgniter 框架的简介 二.CodeIgniter 框架的安装 三.CodeIgniter 框架的目录结构分析 四.CodeIgniter 框架是如何工作的? 五.CodeIgniter 框架中的控制器.视图.模型及数据库操作 六.CodeIgniter 框架中辅助函数.类库.适配器的学习 七.…… NO2. 一.CodeIgniter 是什么? 1.CodeIgniter 是一个应用程序框架 CodeIgniter 是一个为用 PHP 编写网络应用程序的人员

CI框架源代码阅读笔记6 扩展钩子 Hook.php

CI框架同意你在不改动系统核心代码的基础上加入或者更改系统的核心功能(如重写缓存.输出等). 比如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = TRUE;).通过加入特定的钩子,能够让系统在特定的时刻触发特定的脚本: $hook['post_system'] = array( 'class' => 'frameLog', 'function' => 'postLog', 'filename' => 'post_system.php

CodeIgniter系统流程

------------------------------------------------------------------------------------------------------ 进入框架入口文件index.php => 定义应用的当前环境(用于设置错误模式):define('ENVIRONMENT', 'development'); 设置系统文件目录名:$system_path = 'system'; 设置应用文件目录名:$application_folder = '

CodeIgniter 目录结构详解

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

ci钩子

钩子 - 扩展框架核心 CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件.CodeIgniter 的运行遵循着一个特定的流程,你可以参考这个页面的 应用程序流程图 .但是,有些时候你可能希望在 执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本. 启用钩子 钩子特性可以在 application/config/config.php 文件中全局的启用或禁用, 设置下面这个参数: $config[

ci源码解析之CodeIgniter.php

ci/core/CodeIgniter.php是ci框架的核心处理文件,其处理流程如下: 1 require了3个文件 BASEPATH core/Common.php core/Compat.php APPPATH config/constants.php 2 加载Benchmark,并打时间戳 3 加载Hooks,并调用钩子pre_system 4 加载Config.URI.Input和Language 5 加载并解析Router 6 加载并输出缓存Output 7 require系统con