活动(Events)
event是程序识别的可由程序本身处理的动作或事件。 例如,我们可以定义名为my_fuel_event的操作或事件,然后在调用my_fuel_event事件时执行某些操作。 FuelPHP提供class, Event以处理应用程序中的事件。
系统事件
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处理事件,如下所示 -
<?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
},
),
);
事件方法
Event类提供了注册,取消注册和触发事件的方法。 它们如下,
register()
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()
伪造返回一个新的事件对象。
$event = Event::forge();
instance()
该实例返回一个新的事件对象singleton。
$event = Event::instance('event_instance');