Releases: zendframework/zend-eventmanager
zend-eventmanager 3.2.1
Added
- #66 adds support for PHP 7.2.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
zend-eventmanager 2.6.4
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #68 fixes an issue whereby
triggerListeners()
was not resetting the event instance's "stop propagation" flag before triggering listeners; this could result in all listeners for a given event being skipped in cases where the event manager instance triggers multiple events.
zend-eventmanager 3.2.0
zend-eventmanager 3.1.0
Added
- #26 publishes the documentation to https://zendframework.github.io/zend-eventmanager/
Changes
-
#17 makes a number of internal changes to how listeners are stored in order to improve performance, by as much as 10% in the scenario used in the MVC layer.
Additionally, it optimizes when the target and event arguments are injected into an event, eliminating that step entirely when either is unavailable.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
zend-eventmanager 3.0.1
Added
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #24 updates the zend-stdlib dependency to
^2.7.3 || ^3.0
, allowing either major version.
zend-eventmanager 2.6.3
Added
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #23 updates the requirements to allow usage with PHP 7, bumps zend-stdlib to
^2.7
, and requires PHP 7 builds to pass continuous integration.
zend-eventmanager 3.0.0
Documenation:
Migration docs:
Added
- Migration documentation was added.
- Automated benchmarks were added.
EventManager::__construct()
now accepts an optionalSharedEventManagerInterface
instance as the first argument, and an optional array of identifiers as the second. As identifiers have no meaning without a shared manager present, they are secondary to providing the shared manager.EventManagerInterface::trigger()
changes its signature totrigger($eventName, $target = null, $argv = [])
; each argument has exactly one possible meaning; the$eventName
can only be a string event name. The fourth$callback
argument is removed.EventManagerInterface::triggerUntil()
changes its signature totriggerUntil(callable $callback, $eventName, $target = null, $argv = null)
. Each argument has exactly one meaning.EventManagerInterface
adds two new methods for triggering providedEventInterface
arguments:triggerEvent(EventInterface $event)
andtriggerEventUntil(callable $callback, EventInterface $event)
.EventManagerInterface::attach()
anddetach()
change their signatures toattach($eventName, callable $listener, $priority = 1)
anddetach(callable $listener, $eventName = null)
, respectively. Note that$eventName
can now only be a string event name, not an array orTraversable
.EventManagerInterface::setIdentifiers()
andaddIdentifiers()
change their signatures to each only accept an array of identifiers.SharedEventManagerInterface::getListeners()
changes signature togetListeners(array $identifiers, $eventName)
and now guarantees return of an array. Note that the second argument is now required.SharedEventManagerInterface::attach()
changes signature toattach($identifier, $eventName, callable $listener, $priority = 1)
. The$identifier
and$eventName
must be strings.SharedEventManagerInterface::detach()
changes signature todetach(callable $listener, $identifier = null, $eventName = null)
;$identifier
and$eventName
must be strings if passed.ListenerAggregateInterface::attach()
adds an optional$priority = 1
argument. This was used already in v2, but not dictated by the interface.FilterInterface::attach()
anddetach()
have changed signature toattach(callable $callback)
anddetach(callable $ilter)
, respectively.LazyListener
allows wrapping:- fetching a listener service from a container-interop container, and
- invoking a designated listener method with the provided event.
LazyEventListener
extendsLazyListener
, and provides metadata for discovering the intended event name and priority at which to attach the lazy listener; these are consumed by:LazyListenerAggregate
, which, provided a list ofLazyEventListeners
and/or definitions to use to create them, acts as an aggregate for attaching a number of such listeners at once.- #20 updates the trait
Zend\EventManager\Test\EventListenerIntrospectionTrait
so that the implementation will work with the v3 changes; the tests written for v2 continue to pass, allowing this trait to be used to provide compatibility testing between v2 and v3.
Deprecated
- Nothing.
Removed
GlobalEventManager
andStaticEventManager
are removed (with prejudice!).ProvidesEvents
, which was previously deprecated, is removed.EventManagerInterface::setSharedManager()
is removed. Shared managers are now expected to be injected during instantiation.EventManagerInterface::getEvents()
andgetListeners()
are removed; they had now purpose within the implementation.EventManagerInterface::setEventClass()
was renamed tosetEventPrototype()
, which now expects anEventInterface
instance. That instance will be cloned whenever a new event is created.EventManagerInterface::attachAggregate()
anddetachAggregate()
are removed. Users should use theattach()
anddetach()
methods of the aggregates themselves.SharedEventAggregateAwareInterface
andSharedListenerAggregateInterface
are removed. This was an undocumented and largely unused feature.SharedEventManagerAwareInterface
is removed. A new interface,SharedEventsCapableInterface
defines thegetSharedManager()
method from the interface, andEventManagerInterface
extends that new interface.SharedEventManagerInterface::getEvents()
is removed, as it had no purpose in the implementation.ResponseCollection::setStopped()
no longer implements a fluent interface.
Fixed
FilterIterator::insert()
has been modified to raise an exception if the value provided is not a callable.
zend-eventmanager 2.6.2
Added
-
#19 adds a new trait,
Zend\EventManager\Test\EventListenerIntrospectionTrait
, intended for composition in unit tests. It provides a number of methods that can be used to retrieve listeners with or without associated priority, and the assertionassertListenerAtPriority(callable $listener, $priority, $event, EventManager $events, $message = '')
, which can be used for testing that a listener was registered at the specified priority with the specified event.The features in this patch are intended to facilitate testing against both version 2 and version 3 of zend-eventmanager, as it provides a consistent API for retrieving lists of events and listeners between the two versions.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
release-2.6.1
zend-eventmanager 2.6.1
This patch release fixes a dependency problem that prevented users to require
the component, as the dev-dependency athletic/athletic
was required as
dev-master
(#12).
zend-eventmanager 2.6.0
This release is geared towards forwards-compatibility with version 3.0. It primarily marks a number of interfaces, classes, and methods as deprecated, but also introduces several features to aid in preparing your code for version 3.
We recommend reading the migration guide to understand the impact of these changes and what changes you can make to your code base in order to minimize the impact of migration.
Added
- Added
Zend\EventManager\SharedEventsCapableInterface
. This interface will largely replaceZend\EventManager\SharedEventManagerAwareInterface
in version 3, and the latter was updated to extend it. - Added
EventManager::triggerEvent(EventInterface $event)
as a forwards-compatibility feature. - Add
EventManager::triggerEventUntil(callable $callback, EventIterface $event)
as a forwards-compatibility feature. - Adds Athletic benchmarks to aid in gauging performanc impact of changes; these are a development change only.
Deprecated
- Marked
GlobalEventManager
as deprecated; this class will be removed in version 3. - Marked
StaticEventManager
as deprecated; this class will be removed in version 3. - Marked
SharedListenerAggregateInterface
as deprecated; this interface will be removed in version 3. - Marked
SharedEventAggregateAwareInterface
as deprecated; this interface will be removed in version 3. - Marked
SharedEventManagerAwareInterface
as deprecated; this interface will be removed in version 3. - Marked
EventManager::setSharedManager()
as deprecated; this method will be removed in version 3. - Marked
EventManager::unsetSharedManager()
as deprecated; this method will be removed in version 3. - Marked
EventManagerInterface::
andEventManager::getEvents()
as deprecated; this method will be removed in version 3. - Marked
EventManagerInterface::
andEventManager::getListeners()
as deprecated; this method will be removed in version 3. - Marked
EventManagerInterface::
andEventmanager::setEventClass()
as deprecated; this method is renamed tosetEventPrototype(EventInterface $event)
in version 3. - Marked
EventManagerInterface::
andEventManager::attachAggregate()
as deprecated; this method will be removed in version 3. - Marked
EventManagerInterface::
andEventManager::detachAggregate()
as deprecated; this method will be removed in version 3. - Marked
SharedEventManagerInterface::
andSharedEventManager::getEvents()
as deprecated; this method will be removed in version 3.
Removed
- Nothing.
Fixed
- Nothing.