FuelPHP - Wydarzenia

Na eventto czynność lub zdarzenie rozpoznane przez program, które może być obsłużone przez sam program. Na przykład, możemy zdefiniować akcję lub zdarzenie o nazwie my_fuel_event, a następnie wykonać jakąś pracę za każdym razem, gdy wywoływane jest zdarzenie, my_fuel_event. FuelPHP zapewnia klasę,Event do pracy ze zdarzeniami w aplikacji.

Zdarzenia systemowe

FuelPHP zdefiniował niektóre zdarzenia, dzięki którym możemy wykonać jakąś pracę, gdy zdefiniowane zdarzenia są wywoływane lub uruchamiane przez aplikację. Ta pomoc zmienia zachowanie FuelPHP bez zmiany podstawowych plików kodu FuelPHP. Zdarzenia predefiniowane są następujące -

  • app_created - To zdarzenie zostanie wywołane po zainicjowaniu frameworka FuelPHP.

  • request_created - To zdarzenie zostanie wywołane po sfałszowaniu nowego obiektu żądania.

  • request_started - To zdarzenie zostanie wywołane, gdy zażąda się wykonania żądania.

  • controller_started - To zdarzenie zostanie wywołane przed wywołaniem metody kontrolerów przed ().

  • controller_finished - To zdarzenie zostanie wywołane po wywołaniu metody () przez kontrolery i odebraniu odpowiedzi.

  • response_created - To zdarzenie zostanie wywołane po sfałszowaniu nowego obiektu Response.

  • request_finished - To zdarzenie zostanie wywołane, gdy wykonanie żądania zostanie zakończone i otrzymana zostanie odpowiedź.

  • shutdown - To zdarzenie zostanie wywołane po przetworzeniu głównego żądania i wysłaniu wyjścia.

Zdarzenia możemy obsłużyć w specjalnym pliku konfiguracyjnym, fuel/app/config/events.php w następujący sposób -

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

Metody zdarzeń

Klasa Event udostępnia metody rejestrowania, wyrejestrowywania i uruchamiania zdarzeń. Są one następujące:

zarejestrować()

Metoda register umożliwia plikom rejestrację obiektu, który zostanie uruchomiony po wywołaniu metody wyzwalacza.

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

wyrejestruj ()

Metoda wyrejestrowania umożliwia plikom wyrejestrowanie obiektu, który zostałby uruchomiony po wywołaniu metody wyzwalacza.

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

cyngiel()

Metoda wyzwalania służy do wyzwalania lub aktywowania wywołań zwrotnych, które są skojarzone za pomocą metody rejestru.

Event::trigger('my_event');

has_events ()

Dostępna jest metoda has_events, dzięki czemu można sprawdzić, czy określone zarejestrowane zdarzenie ma wyzwalacze.

Event::has_events('my_event');

fałszować()

Kuźnia zwraca nowy obiekt zdarzenia.

$event = Event::forge();

instancja()

Instancja zwraca nowy singleton obiektu zdarzenia.

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