CakePHP 3.6-在Shell/Command中触发en事件



我需要在控制器和命令中执行相同的代码(启动计算(。所以我想用一个事件来实现这一点,但我不知道如何在命令中触发事件。有可能这样做吗?或者有更好的方法吗?

我找到了一个简单的解决方案。。。

$table = TableRegistry::getTableLocator()->get('Calculations');
$eventManager = $table->getEventManager();
$event = new Event('Calculation.execute', $table, ['calculation' => $calculation]);
$eventManager->dispatch($event);

我使用我的TableClass来获取Eventmanager。

更好的方法:

<?php
use CakeEventEvent;
use CakeEventEventManager;
// ...
$event = new Event('CustomEvent.example', null, ['Pass this', 'Data to event listener']);
$em = new EventManager();
$em->dispatch($event);

最新更新