phower/events

面向事件编程的PHP。

1.1.0 2017-04-12 16:49 UTC

This package is auto-updated.

Last update: 2024-09-10 04:39:24 UTC


README

面向事件编程的PHP。

需求

Phower Events 需要

  • PHP 5.6 或更高版本;推荐使用 7.0 版本

安装

使用 Composer 将 Phower Events 添加到任何PHP项目中

composer require phower/events

使用方法

此包提供了一种面向事件机制的实现,允许任何PHP应用程序通过派发事件并监听它们来实现各部分之间的通信。

PhowerEvents的实现需要一个 EventHandler 类和至少一个事件监听器,它必须是任何有效的 PHP 调用者

use Phower\Events\EventHandlerInterface;
use Phower\Events\EventInterface;

class MyEventListener
{
    public onDummyEvent(EventInterface $event, EventHandlerInterface $handler)
    {
        print_r($event->getName());
        print_r($handler->getListeners($event));
    }
}

请注意,任何监听器方法都应该始终期望两个参数

  1. 一个代表触发事件的 EventInterface 实例;
  2. 一个触发事件的 EventHandlerInterface 实例。

在能够触发上述监听器之前,我们必须将其附加到处理器实例

use Phower\Events\EventHandler;

$handler = new EventHandler();
$handler->addListener('dummy', 'MyEventListener::onDummyEvent');

// later at any point where the handler is available:
$handler->trigger('dummy');

容器感知处理器

Container 是应用程序的一部分时,自动将容器传递给监听器可能很有用。

在这种情况下,我们可以切换到 ContainerAwareEventHandlerInterface 的实例,并使我们的监听器也成为 ContainerAwareInterface 的实例。

运行测试

测试可用在单独的命名空间中,并且可以在命令行中使用 PHPUnit 运行

vendor/bin/phpunit

编码规范

Phower 代码是在 PSR-2 编码风格标准下编写的。为了强制执行这一点,还提供了 CodeSniffer 工具,可以按以下方式运行

vendor/bin/phpcs

报告问题

如果您在此代码中发现问题,请在 https://github.com/phower/container/issues 上创建一个工单。

贡献者

开源是由贡献构成的。如果您想为Phower做出贡献,请按照以下步骤操作

  1. 将最新版本fork到您的个人仓库中。
  2. 编写您的更改或添加,并提交它们。
  3. 遵循PSR-2编码风格标准。
  4. 确保您的更改有完整的单元测试覆盖。
  5. 前往Github Pull Requests https://github.com/phower/container/pulls 并创建一个新的请求。

谢谢!

更改和版本控制

有关此代码的所有相关更改都已记录在单独的 日志文件 中。

版本号遵循 语义版本化 的建议。

许可

Phower 代码是在 The MIT License 下维护的。