lium/event-dispatcher

PSR-14标准事件处理实现。

v0.1.0 2019-12-08 10:34 UTC

This package is auto-updated.

Last update: 2024-09-22 23:58:29 UTC


README

一个严格遵循PSR-14,注重简洁性的实现。

为什么?

这个库的主要目标是严格遵循PSR-14。

安装

composer require lium/event-dispatcher

用法

以下是一个快速示例,展示如何使用它

<?php

use App\Event\UserLoggedIn;
use Lium\EventDispatcher\EventDispatcher;
use Lium\EventDispatcher\ListenerProvider\DefaultListenerProvider;

// Listeners definitions
$listenerCalledForEveryEvent = function (object $event) {
    // This listener will match all events because its argument has the scalar type "object"
    echo sprintf('A listener has been called with the event "%s".', get_class($event));
};

$updateUserLastLoginDate = function (UserHasLoggedIn $event) {
    $user = $event->getUser();
    echo sprintf('The user "%s" has logged in.', $user->getUsername());
};

// Initialization
$listenerProvider = new DefaultListenerProvider([
    $listenerCalledForEveryEvent,
    $updateUserLastLoginDate,
]);

$eventDispatcher = new EventDispatcher($listenerProvider);

// Later in your code...
$eventDispatcher->dispatch(new UserHasLoggedIn($user));

前面的示例将输出

A listener has been called with the event "App\Event\UserLoggedIn".
The user "johndoe" has logged in.

您可以通过查看示例目录来查看更多示例。

贡献

请参阅CONTRIBUTING文件。

许可证

本项目采用MIT许可证。有关完整的版权信息,请阅读许可证文件