stagem / zfc-listener
ZF config based event listeners
Installs: 145
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 0
Open Issues: 0
Type:zf-module
Requires
- php: >=5.6 || ^7.
This package is not auto-updated.
Last update: 2024-03-21 12:17:47 UTC
README
The main problem with standard events registering is the eager dependency resolving. This create unwanted overhead and increase time response.
By the scene Shared Event Manager is used.
This module is intended to solve this problem and allow register listeners with config and Zend\EventManager\LazyEventListener
.
Simply speaking, this module register Lazy Listeners and resolve all listener dependencies directly event arise.
Installation
Run command composer require stagem/zfc-listener
Usage
Register module in config/modules.config.php
with 'Stagem\ZfcListener'
Add your events in your/module/config/module.config.php
return [ 'event_manager' => [ 'definitions' => [ [ 'listener' => \Acme\Work\Listener\WorkListener::class, 'method' => 'postWorkPaid', // or #'listener' => [\Acme\Work\Listener\WorkListener::class, 'postWorkPaid'], 'event' => 'change.work-paid.post', 'identifier' => \Acme\Status\Controller\StatusController::class, 'priority' => 100, ], // other listeners // [...], ], ], ];
Then when in your StatusController
the event change.work-paid.post
will be triggered the LazyEventListener
resolve
dependencies of WorkListener
and method postWorkPaid
will be execute.
Tips
If your module has many listeners it's good practice split your config in separate file
// your/module/config/module.config.php return [ 'event_manager' => require 'listener.config.php', ];
// your/module/config/listener.config.php return [ 'definitions' => [ [ 'listener' => \Acme\Work\Listener\WorkListener::class, 'method' => 'postWorkPaid', 'event' => 'change.work-paid.post', 'identifier' => \Acme\Status\Controller\StatusController::class, 'priority' => 100, ], // other listeners // [...], ], ];