tinywan/event
最新稳定版本:v0.0.1
Composer 安装命令:
composer require tinywan/event
包简介
the event for webman plugin
README 文档
README
事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。
安装
composer require tinywan/event
快速开始
监听事件
事件类 LogErrorWriteEvent.php
namespace extend; use Symfony\Contracts\EventDispatcher\Event; class LogErrorWriteEvent extends Event { const NAME = 'log.error.write'; // 事件名,事件的唯一标识 public $log; public function __construct(array $log) { $this->log = $log; } public function handle() { return $this->log; } }
事件监听
return [ // 事件监听 'listener' => [ \extend\LogErrorWriteEvent::NAME => \extend\LogErrorWriteEvent::class, \extend\DingTalkEvent::NAME => \extend\DingTalkEvent::class, ], ];
事件订阅
订阅类 LoggerSubscriber.php
namespace extend; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Contracts\EventDispatcher\Event; class LoggerSubscriber implements EventSubscriberInterface { public static function getSubscribedEvents(): array { // 监听的不同事件,当事件触发时,会调用 onResponse 方法 return [ \extend\LogErrorWriteEvent::NAME => 'onResponse', \extend\DingTalkEvent::NAME => 'onResponse', ]; } /** * @desc: 触发事件 * @param Event $event */ public function onResponse(Event $event) { // 一些具体的业务逻辑 var_dump($event->handle()); } }
事件订阅
return [ // 事件订阅 'subscriber' => [ \extend\LoggerSubscriber::class ], ];
事件触发器
触发 LogErrorWriteEvent 事件。
$error = [ 'errorMessage' => '错误消息', 'errorCode' => 500 ]; Tinywan\Event::trigger(new \extend\LogErrorWriteEvent($error), \extend\LogErrorWriteEvent::NAME);
助手函数(推荐)
$error = [ 'errorMessage' => '错误消息', 'errorCode' => 500 ]; event(new \extend\LogErrorWriteEvent($error), \extend\LogErrorWriteEvent::NAME);
执行结果
License
This project is licensed under the Apache 2.0 license.
tinywan/event 适用场景与选型建议
tinywan/event 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.75k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2022 年 04 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「event」 「plugin」 「webman」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tinywan/event 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tinywan/event 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tinywan/event 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
CakePHP 4.x AdminLTE Theme.
base64 image verification captcha library for webman plugin
Webman Hashids Used to generate a youtube-like ID from a digital ID
Symfony bundle for broadway/broadway.
Php 代码扩展包, 一些常用的 php 代码封装
This is an Event Emitter equivalent to Node.js' Event Emitter.
统计信息
- 总下载量: 1.75k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2022-04-18
