开发手册 欢迎您!
软件开发者资料库

FuelPHP - Events

FuelPHP Events - 从基本概念到高级概念,从简单和简单的步骤学习FuelPHP,其中包括简介,安装,架构概述,简单Web应用程序,配置,控制器,路由,请求和响应,视图,演示者,模型和数据库,表单编程,验证,高级表单编程,文件上传,Ajax,HMVC请求,主题,模块,包,Cookie和会话管理,事件,电子邮件管理,Profiler,错误处理和调试,单元测试,完整的工作示例。

事件是程序识别的可由程序本身处理的操作或事件.例如,我们可以定义名为my_fuel_event的操作或事件,然后在调用my_fuel_event事件时执行某些操作. FuelPHP提供类事件来处理应用程序中的事件.

系统事件

FuelPHP定义了一些每当应用程序调用或触发定义的事件时,我们可以通过该事件执行某些操作.这有助于改变FuelPHP的行为,而无需更改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 如下 :

 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);

trigger()

触发方法用于触发或激活通过寄存器方法关联的回调.

  Event :: trigger('my_event');

has_events()

has_events方法可用,因此您可以检查特定注册事件是否有触发器.

Event::has_events('my_event');

forge()

forge返回一个新的事件对象.

$event = Event::forge();

instance()

实例返回一个新的事件对象单例.

$event = Event::instance('event_instance');