CakePHP 3.6 - запуск события в оболочке / команде - PullRequest
0 голосов
/ 12 ноября 2018

Мне нужно выполнить один и тот же код в контроллере и в команде (запустить расчет). Поэтому я решил использовать событие для этого, но я не мог понять, как вызвать событие в команде. Возможно ли это сделать или есть лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Лучше:

<?php
use Cake\Event\Event;
use Cake\Event\EventManager;

// ...
$event = new Event('CustomEvent.example', null, ['Pass this', 'Data to event listener']);
$em = new EventManager();
$em->dispatch($event);
0 голосов
/ 12 ноября 2018

Я нашел простое решение ...

$table = TableRegistry::getTableLocator()->get('Calculations');
$eventManager = $table->getEventManager();

$event = new Event('Calculation.execute', $table, ['calculation' => $calculation]);
$eventManager->dispatch($event);

Я использовал свой TableClass, чтобы получить Eventmanger.

...