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 optionalSharedEventManagerInterfaceinstance 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$eventNamecan only be a string event name. The fourth$callbackargument is removed.EventManagerInterface::triggerUntil()changes its signature totriggerUntil(callable $callback, $eventName, $target = null, $argv = null). Each argument has exactly one meaning.EventManagerInterfaceadds two new methods for triggering providedEventInterfacearguments: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$eventNamecan 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$identifierand$eventNamemust be strings.SharedEventManagerInterface::detach()changes signature todetach(callable $listener, $identifier = null, $eventName = null);$identifierand$eventNamemust be strings if passed.ListenerAggregateInterface::attach()adds an optional$priority = 1argument. 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.LazyListenerallows wrapping:- fetching a listener service from a container-interop container, and
- invoking a designated listener method with the provided event.
LazyEventListenerextendsLazyListener, 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 ofLazyEventListenersand/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\EventListenerIntrospectionTraitso 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
GlobalEventManagerandStaticEventManagerare 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 anEventInterfaceinstance. 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.SharedEventAggregateAwareInterfaceandSharedListenerAggregateInterfaceare removed. This was an undocumented and largely unused feature.SharedEventManagerAwareInterfaceis removed. A new interface,SharedEventsCapableInterfacedefines thegetSharedManager()method from the interface, andEventManagerInterfaceextends 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\SharedEventManagerAwareInterfacein 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
GlobalEventManageras deprecated; this class will be removed in version 3. - Marked
StaticEventManageras deprecated; this class will be removed in version 3. - Marked
SharedListenerAggregateInterfaceas deprecated; this interface will be removed in version 3. - Marked
SharedEventAggregateAwareInterfaceas deprecated; this interface will be removed in version 3. - Marked
SharedEventManagerAwareInterfaceas 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.