cakephp/event

CakePHP 事件调度器库,帮助实现观察者模式

5.1.0 2024-09-06 12:23 UTC

This package is auto-updated.

Last update: 2024-09-21 03:04:54 UTC


README

Total Downloads License

CakePHP 事件库

此库模拟了如何在流行的JavaScript库(如jQuery)中触发和管理事件的一些方面:将事件对象分发到所有监听器。事件对象包含有关事件的信息,并提供在任意点停止事件传播的能力。监听器可以自行注册,也可以将此任务委托给其他对象,并有机会修改剩余回调的状态和事件本身。

使用方法

监听器需要注册到管理器中,然后可以触发事件,以便通知监听器动作。

use Cake\Event\Event;
use Cake\Event\EventDispatcherTrait;

class Orders
{

	use EventDispatcherTrait;

	public function placeOrder($order)
	{
		$this->doStuff();
		$event = new Event('Orders.afterPlace', $this, [
			'order' => $order
		]);
		$this->getEventManager()->dispatch($event);
	}
}

$orders = new Orders();
$orders->getEventManager()->on(function ($event) {
	// Do something after the order was placed
	...
}, 'Orders.afterPlace');

$orders->placeOrder($order);

上述代码允许您轻松地通知应用程序的其他部分已创建订单。然后,您可以在专注于这些关注点的单独对象中执行诸如发送电子邮件通知、更新库存、记录相关统计信息和其他任务。

文档

请确保查看官方文档