FuelPHP 事件
fuelphp 事件
事件 是程序識(shí)別的動(dòng)作或事件,可由程序本身處理。例如,我們可以定義一個(gè)名為 my_fuel_event 的動(dòng)作或事件,然后在調(diào)用 my_fuel_event 事件時(shí)做一些工作。 fuelphp 提供了 event 類(lèi)來(lái)處理應(yīng)用程序中的事件。
系統(tǒng)事件
fuelphp 定義了一些事件,只要應(yīng)用程序調(diào)用或觸發(fā)定義的事件,我們就可以通過(guò)這些事件進(jìn)行一些工作。這個(gè)幫助改變了 fuelphp 的行為,而不改變 fuelphp 的核心代碼文件。預(yù)定義的事件如下:
- app_created-該事件將在 fuelphp 框架初始化后觸發(fā)。
- request_created-在偽造新的請(qǐng)求對(duì)象后將觸發(fā)此事件。
- request_started-請(qǐng)求執(zhí)行請(qǐng)求時(shí)將觸發(fā)此事件。
- controller_started-此事件將在調(diào)用控制器 before() 方法之前觸發(fā)。
- controller_finished-此事件將在控制器 after() 方法被調(diào)用并收到響應(yīng)后觸發(fā)。
- response_created-此事件將在偽造新的響應(yīng)對(duì)象后觸發(fā)。
- request_finished-當(dāng)請(qǐng)求的執(zhí)行完成并收到響應(yīng)時(shí)將觸發(fā)此事件。
- shutdown-在處理主請(qǐng)求并發(fā)送輸出后將觸發(fā)此事件。
我們可以處理特殊配置文件中的事件, fuel/app/config/events.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 類(lèi)提供注冊(cè)、注銷(xiāo)和觸發(fā)事件的方法。它們?nèi)缦拢?/p>
register()
register 方法允許文件注冊(cè)一個(gè)對(duì)象,該對(duì)象將在調(diào)用 trigger 方法時(shí)運(yùn)行。
$my_event_code = function() { echo 'my event'; } event::register('my_event', $my_event_code);
unregister()
取消注冊(cè)方法允許文件取消注冊(cè)將在調(diào)用觸發(fā)器方法時(shí)運(yùn)行的對(duì)象。
event::unregister('my_event', $my_event_code);
trigger()
trigger 方法用于觸發(fā)或激活通過(guò) register 方法關(guān)聯(lián)的回調(diào)。
event::trigger('my_event');
has_events()
has_events 方法可用,因此您可以檢查特定注冊(cè)事件是否具有觸發(fā)器。
event::has_events('my_event');
forge()
forge 返回一個(gè)新的事件對(duì)象。
$event = event::forge();
instance()
該實(shí)例返回一個(gè)新的事件對(duì)象單例。
$event = event::instance('event_instance');
相關(guān)文章
- CodeIgniter 教程
- CodeIgniter MVC 框架
- CodeIgniter 庫(kù)
- CodeIgniter 文件上傳
- CodeIgniter 發(fā)送電子郵件
- CodeIgniter 常用函數(shù)
- CodeIgniter 國(guó)際化
- CakePHP 安裝
- CakePHP 查看元素
- CakePHP 表單處理
- FuelPHP 路由
- FuelPHP 表單編程
- FuelPHP 文件上傳
- FuelPHP Cookie
- FuelPHP 電子郵件管理
- FuelPHP 工作示例
- Laravel 路由
- Laravel 響應(yīng)
- Laravel 認(rèn)證
- Laravel 授權(quán)