phpnomad/symfony-event-dispatcher-integration
Composer 安装命令:
composer require phpnomad/symfony-event-dispatcher-integration
包简介
Integrates PHPNomad's event architecture with Symfony's event dispatcher.
README 文档
README
Integrates Symfony's EventDispatcher component with PHPNomad's event abstraction. It provides concrete EventStrategy and ActionBindingStrategy implementations that satisfy the interfaces defined in phpnomad/event, so application code that dispatches or listens for events keeps depending on the PHPNomad contracts while the underlying work goes through Symfony's dispatcher. This is the recommended implementation for PHPNomad applications that are not running inside a host platform with its own event system.
Installation
composer require phpnomad/symfony-event-dispatcher-integration
Composer pulls in phpnomad/event, phpnomad/di, phpnomad/loader, and symfony/event-dispatcher transitively.
What This Provides
- An
EventStrategyimplementation that wraps each PHPNomad event in a Symfony-compatible event object and dispatches it throughEventDispatcherInterface.attach()supports priorities, and listener callables receive the original PHPNomad event rather than the Symfony wrapper. - An
ActionBindingStrategyimplementation that binds an arbitrary action name to a PHPNomad event class, with an optional transformer callable for shaping the event instance from the action arguments. - An
Initializerclass that registers both strategies with the DI container and binds Symfony'sEventDispatchertoEventDispatcherInterface.
Requirements
phpnomad/eventfor the interfaces being implementedphpnomad/diandphpnomad/loaderfor container wiringsymfony/event-dispatcher^7.1 for the underlying dispatcher
All four are declared as direct dependencies, so Composer installs them automatically.
Usage
Add the integration's Initializer to your PHPNomad bootstrapper alongside your application initializers. The loader picks up its class definitions and binds both strategies to their PHPNomad interfaces.
<?php use MyApp\MyAppInitializer; use PHPNomad\Di\Container\Container; use PHPNomad\Loader\Bootstrapper; use PHPNomad\Symfony\Component\EventDispatcherIntegration\Initializer as SymfonyEventDispatcherInitializer; $container = new Container(); $bootstrapper = new Bootstrapper( $container, new MyAppInitializer(), new SymfonyEventDispatcherInitializer(), ); $bootstrapper->load();
Once the bootstrapper runs, any service that depends on PHPNomad\Events\Interfaces\EventStrategy or PHPNomad\Events\Interfaces\ActionBindingStrategy resolves to the Symfony-backed implementation. Your domain code continues to depend on the PHPNomad interfaces and does not reference Symfony directly.
Documentation
Full PHPNomad documentation lives at phpnomad.com. For the underlying dispatcher, see the Symfony EventDispatcher component.
License
Released under the MIT License.
phpnomad/symfony-event-dispatcher-integration 适用场景与选型建议
phpnomad/symfony-event-dispatcher-integration 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 175 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 12 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 phpnomad/symfony-event-dispatcher-integration 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 phpnomad/symfony-event-dispatcher-integration 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 175
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-18