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

下一節(jié):fuelphp 電子郵件管理

fuelphp 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频