FuelPHP - Sự kiện

An eventlà một hành động hoặc sự cố được chương trình công nhận và có thể do chính chương trình xử lý. Ví dụ: chúng ta có thể xác định một hành động hoặc sự kiện có tên my_fuel_event và sau đó thực hiện một số công việc bất cứ khi nào sự kiện, my_fuel_event được gọi. FuelPHP cung cấp lớp học,Event để làm việc với các sự kiện trong ứng dụng.

Sự kiện hệ thống

FuelPHP đã xác định một số sự kiện mà qua đó chúng ta có thể thực hiện một số công việc bất cứ khi nào các sự kiện đã xác định được ứng dụng gọi hoặc kích hoạt. Trợ giúp này đang thay đổi hoạt động của FuelPHP mà không thay đổi tệp mã lõi của FuelPHP. Các sự kiện được xác định trước như sau:

  • app_created - Sự kiện này sẽ được kích hoạt sau khi khuôn khổ FuelPHP đã được khởi chạy.

  • request_created - Sự kiện này sẽ được kích hoạt sau khi một đối tượng Yêu cầu mới đã được giả mạo.

  • request_started - Sự kiện này sẽ được kích hoạt khi thực hiện một yêu cầu được yêu cầu.

  • controller_started - Sự kiện này sẽ được kích hoạt trước khi phương thức before () bộ điều khiển được gọi.

  • controller_finished - Sự kiện này sẽ được kích hoạt sau khi phương thức after () của bộ điều khiển được gọi và nhận được phản hồi.

  • response_created - Sự kiện này sẽ được kích hoạt sau khi đối tượng Phản hồi mới được tạo.

  • request_finished - Sự kiện này sẽ được kích hoạt khi việc thực thi Yêu cầu hoàn tất và nhận được phản hồi.

  • shutdown - Sự kiện này sẽ được kích hoạt sau khi yêu cầu chính được xử lý và kết quả được gửi đi.

Chúng tôi có thể xử lý các sự kiện trong tệp cấu hình đặc biệt, fuel/app/config/events.php như sau -

<?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 
         }, 
      ), 
   );

Phương thức sự kiện

Lớp sự kiện cung cấp các phương thức để đăng ký, hủy đăng ký và kích hoạt các sự kiện. Chúng như sau,

Đăng ký()

Phương thức đăng ký cho phép tệp đăng ký một đối tượng sẽ được chạy khi phương thức kích hoạt được gọi.

$my_event_code = function() { 
   echo 'my event'; 
} 
Event::register('my_event', $my_event_code);

hủy đăng ký ()

Phương thức hủy đăng ký cho phép tệp hủy đăng ký một đối tượng sẽ được chạy khi phương thức kích hoạt được gọi.

Event::unregister('my_event', $my_event_code);

Kích hoạt()

Phương thức kích hoạt được sử dụng để kích hoạt hoặc kích hoạt các lệnh gọi lại được liên kết thông qua phương thức đăng ký.

Event::trigger('my_event');

has_events ()

Phương thức has_events có sẵn để bạn có thể kiểm tra xem một sự kiện đã đăng ký cụ thể có trình kích hoạt hay không.

Event::has_events('my_event');

làm giả()

Forge trả về một đối tượng sự kiện mới.

$event = Event::forge();

instance ()

Cá thể trả về một singleton đối tượng sự kiện mới.

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