All notable changes to this project will be documented in this file, in reverse chronological order by release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #66 adds support for PHP 7.2.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #47 removes support for PHP 5.5 and HHVM.
- Nothing.
- #26 publishes the documentation to https://zendframework.github.io/zend-eventmanager/
-
#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.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #24 updates the
zend-stdlib dependency to
^2.7.3 || ^3.0
, allowing either major version.
- 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.
- Nothing.
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.
FilterIterator::insert()
has been modified to raise an exception if the value provided is not a callable.
-
#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.
- Nothing.
- Nothing.
- Nothing.
- 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.
- 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.
- Nothing.
- Nothing.
- #5 adds a number of unit tests to improve test coverage, and thus maintainability and stability.
- Nothing.
- #3 removes some
PHP 5.3- and 5.4-isms (such as marking Traits as requiring 5.4, and closing
over a copy of
$this
) from the test suite.
- #5 fixes a bug in
FilterIterator
that occurs when attempting to extract from an empty heap.