Event handlery

Artykuł opisuje sposób tworzenia event handlerów.

Event Handlery - informacje ogólne 

Event handlery są potężnym narzędziem dającym możliwość wykonania dodatkowych akcji podczas wykonywania operacji bez konieczności modyfikacji funkcji bazowych.

Funkcją odpowiedzialną za ich rejestrację (czyli dodanie do systemu) jest  statyczna metoda \App\EventHandler::registerHandler()

Metoda przyjmuje aż osiem parametrów ale tylko dwa są wymagane:

public static function registerHandler(string $eventName, string $className, $includeModules = '', $excludeModules = '', $priority = 5, $isActive = true, $ownerId = 0, $mode = 1): bool

Wymagane Event Handlery:

Opcjonalne Event Handlery:

  • $includeModules (default: '') - określa, kótre moduły mają zawierać dany EventHandler
  • $excludeModules (default: '') - określa, dla których modułów EventHandler ma się nie wykonywać
  • $priority (default: 5) - priorytet wykonania
  • $isActive (default: true) - określa czy EventHandler jest aktywny
  • $ownerId (default: 0) - określa Id właściciela eventu
  • $mode (default: 1) - określa czy jest możliwość edycji handlera (1 - tak, 0 - nie)

Przykład:

\App\EventHandler::registerHandler('EntityBeforeSave', 'Vtiger_FieldsDependency_Handler', implode(',', $modules), '', 5, true, 0, \App\EventHandler::EDITABLE);
class Vtiger_FieldsDependency_Handler
{
  /** * EntityBeforeSave function.
   *
   * @param App\EventHandler $eventHandler
   */
  public function entityBeforeSave(App\EventHandler $eventHandler)
  {
    //kod handlera
  }
}
  • Friday, 06 May 2022