- FuelPHP 教程
- FuelPHP - 主页
- FuelPHP - 简介
- FuelPHP - 安装
- FuelPHP - 架构概述
- FuelPHP - 简单的 Web 应用程序
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 请求与响应
- FuelPHP - 视图
- FuelPHP - 演讲者
- FuelPHP - 模型和数据库
- FuelPHP - 表单编程
- FuelPHP - 验证
- 高级形式编程
- FuelPHP - 文件上传
- FuelPHP-Ajax
- FuelPHP - HMVC 请求
- FuelPHP - 主题
- FuelPHP - 模块
- FuelPHP - 包
- Cookie 和会话管理
- FuelPHP - 活动
- FuelPHP - 电子邮件管理
- FuelPHP - 分析器
- 错误处理和调试
- FuelPHP - 单元测试
- 完整的工作示例
- FuelPHP 有用资源
- FuelPHP - 快速指南
- FuelPHP - 有用的资源
- FuelPHP - 讨论
FuelPHP - 活动
事件是程序识别的可以由程序本身处理的动作或事件。例如,我们可以定义一个名为 my_fuel_event 的操作或事件,然后在调用该事件 my_fuel_event 时执行一些工作。FuelPHP 提供了Event类来处理应用程序中的事件。
系统事件
FuelPHP 定义了一些事件,每当应用程序调用或触发定义的事件时,我们都可以通过这些事件执行一些工作。此帮助正在更改 FuelPHP 的Behave,而不更改 FuelPHP 的核心代码文件。预定义事件如下 -
app_created - FuelPHP 框架初始化后将触发此事件。
request_created - 在伪造新的 Request 对象后将触发此事件。
request_started - 当请求执行请求时将触发此事件。
controller_started - 该事件将在调用控制器 before() 方法之前触发。
controller_finished - 调用控制器 after() 方法并收到响应后将触发此事件。
response_created - 在伪造新的 Response 对象后将触发此事件。
request_finished - 当请求执行完成并收到响应时将触发此事件。
shutdown - 在处理主请求并发送输出后将触发此事件。
我们可以处理特殊配置文件fuel/app/config/events.php中的事件,如下所示 -
<?php return array ( 'fuelphp' => array ( 'app_created' => function() { // After FuelPHP initialised }, 'request_created' => function() { // After Request forged }, 'request_started' => function() { // Request is requested }, 'controller_started' => function() { // Before controllers before() method called }, 'controller_finished' => function() { // After controllers after() method called }, 'response_created' => function() { // After Response forged }, 'request_finished' => function() { // Request is complete and Response received }, 'shutdown' => function() { // Output has been send out }, ), );
事件方法
事件类提供注册、取消注册和触发事件的方法。它们如下:
登记()
register 方法允许文件注册一个对象,该对象将在调用触发器方法时运行。
$my_event_code = function() { echo 'my event'; } Event::register('my_event', $my_event_code);
取消注册()
unregister 方法允许文件取消注册在调用触发器方法时将运行的对象。
Event::unregister('my_event', $my_event_code);
扳机()
触发方法用于触发或激活通过注册方法关联的回调。
Event::trigger('my_event');
has_events()
has_events 方法可用,因此您可以检查特定的注册事件是否有触发器。
Event::has_events('my_event');
锻造()
锻造厂返回一个新的事件对象。
$event = Event::forge();
实例()
该实例返回一个新的事件对象单例。
$event = Event::instance('event_instance');