caridea / event
一个事件库的小虾米
3.0.0
2018-01-02 01:59 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: ^6.0.0
This package is not auto-updated.
Last update: 2024-09-09 07:04:55 UTC
README
Caridea 是一个微小的 PHP 应用程序库。当你只需要一些帮助而不需要一个完整的框架时,这个小虾米就是你的选择。
这是其事件库。它提供了发布者和监听者的接口,以及一个 Event 的抽象类。
如果你需要一个具体的 Publisher
实现,请尝试 caridea-container。
安装
您可以使用 Composer 安装此库
$ composer require caridea/event
- 此项目的 master 分支(版本 3.x)需要 PHP 7.1,没有依赖项。
- 此项目的 2.x 版本需要 PHP 7.0,没有依赖项。
- 此项目的 1.x 版本需要 PHP 5.5,没有依赖项。
合规性
此库的发布将遵循 语义版本控制。
我们的代码旨在符合 PSR-1、PSR-2 和 PSR-4。如果您发现任何与标准合规性相关的问题,请发送一个 pull request!
文档
- 请访问 Read the Docs
示例
只是几个简单的示例。
假设您定义了以下类
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()); } }