caridea/event

一个事件库的小虾米

3.0.0 2018-01-02 01:59 UTC

This package is not auto-updated.

Last update: 2024-09-09 07:04:55 UTC


README

Caridea 是一个微小的 PHP 应用程序库。当你只需要一些帮助而不需要一个完整的框架时,这个小虾米就是你的选择。

这是其事件库。它提供了发布者和监听者的接口,以及一个 Event 的抽象类。

如果你需要一个具体的 Publisher 实现,请尝试 caridea-container

Packagist Build Status Scrutinizer Code Quality Code Coverage

安装

您可以使用 Composer 安装此库

$ composer require caridea/event
  • 此项目的 master 分支(版本 3.x)需要 PHP 7.1,没有依赖项。
  • 此项目的 2.x 版本需要 PHP 7.0,没有依赖项。
  • 此项目的 1.x 版本需要 PHP 5.5,没有依赖项。

合规性

此库的发布将遵循 语义版本控制

我们的代码旨在符合 PSR-1PSR-2PSR-4。如果您发现任何与标准合规性相关的问题,请发送一个 pull request!

文档

示例

只是几个简单的示例。

假设您定义了以下类

namespace Acme\Foo;

class CustomEvent extends \Caridea\Event\Event
{
}

class CustomEventListener implements \Caridea\Event\Listener
{
    public function notify(\Caridea\Event\Event $event)
    {
        if ($event instanceof CustomEvent) {
            // do something here
        }
    }
}

发布者可以这样调用

// Here, we assume that $publisher implements a \Caridea\Event\Publisher and that
// We have somehow registered an \Acme\Foo\CustomEventListener with it.
$publisher->publish(new \Acme\Foo\CustomEvent());
// Our CustomEventListener has its ->notify method invoked.

有一个无操作实现 Publisher,可用作 \Caridea\Event\NullPublisher

PublisherAware

对于需要事件发布者的类,您可以使用 PublisherAware 接口,以及可选的 PublisherSetter 特性。

class MyClass implements \Caridea\Event\PublisherAware
{
    use \Caridea\Event\PublisherSetter;

    public function __construct()
    {
        $this->setPublisher(new \Caridea\Event\NullPublisher());
    }
}