radnan / rdn-event
Zend Framework 2 event listener manager
Installs: 17 904
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
This package is not auto-updated.
Last update: 2025-02-11 03:49:18 UTC
README
The RdnEvent ZF2 module provides a service locator for event listeners.
How to install
-
Use
composer
to require theradnan/rdn-event
package:$ composer require radnan/rdn-event:1.*
-
Activate the module by including it in your
application.config.php
file:<?php return array( 'modules' => array( 'RdnEvent', // ... ), );
How to use
Simply configure your event listeners with the RdnEvent\Listener\ListenerManager
service locator using the rdn_event_listeners
configuration option. Listeners are any class that implements the Zend\EventManager\ListenerAggregateInterface
interface.
<?php return array( 'rdn_event_listeners' => array( 'invokables' => array(), 'factories' => array(), ), );
How to create listeners
Create your listeners inside your module, register them with the event listener service locator, and finally attach the listener by including it in the rdn_event[listeners]
configuration option.
Let's create a hello world listener inside our App
module:
1. Create listener class
Create the class App\Listener\HelloWorld
by extending RdnEvent\Listener\AbstractListener
:
<?php namespace App\Listener; use RdnConsole\Listener\AbstractListener; use Zend\EventManager\EventInterface; use Zend\EventManager\EventManagerInterface; use Zend\Mvc\MvcEvent; class HelloWorld extends AbstractListener { public function attach(EventManagerInterface $events) { $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH, array($this, 'execute')); } public function execute(EventInterface $event) { var_dump('Hello World!'); } }
2. Register listener with service locator
Place the following in your module.config.php
file:
<?php return array( 'rdn_event_listeners' => array( 'invokables' => array( 'App:HelloWorld' => 'App\Listener\HelloWorld', ), ), );
3. Attach the listener to the event manager
Now, place the following in your module.config.php
file:
<?php return array( 'rdn_event' => array( 'listeners' => array( 'App:HelloWorld', ), ), );
That's it! The module will fetch the listener from the service locator and attach it to the application's event manager.