gnu-social/vendor/zendframework/zend-eventmanager/CHANGELOG.md
2020-08-07 23:42:38 +01:00

280 lines
9.8 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file, in reverse chronological order by release.
## 3.2.1 - 2018-04-25
### Added
- [#66](https://github.com/zendframework/zend-eventmanager/pull/66) adds support for PHP 7.2.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- Nothing.
## 3.2.0 - 2017-07-11
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- [#47](https://github.com/zendframework/zend-eventmanager/pull/47) removes
support for PHP 5.5 and HHVM.
### Fixed
- Nothing.
## 3.1.0 - 2016-12-19
### Added
- [#26](https://github.com/zendframework/zend-eventmanager/pull/26) publishes
the documentation to https://zendframework.github.io/zend-eventmanager/
### Changes
- [#17](https://github.com/zendframework/zend-eventmanager/pull/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.
## 3.0.1 - 2016-02-18
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#24](https://github.com/zendframework/zend-eventmanager/pull/24) updates the
zend-stdlib dependency to `^2.7.3 || ^3.0`, allowing either major version.
## 3.0.0 - 2016-01-12
### Added
- [Migration documentation](doc/book/migration/) was added.
- [Automated benchmarks](benchmarks/) were added.
- `EventManager::__construct()` now accepts an optional
`SharedEventManagerInterface` 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 to
`trigger($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 to
`triggerUntil(callable $callback, $eventName, $target = null, $argv = null)`.
Each argument has exactly one meaning.
- `EventManagerInterface` adds two new methods for triggering provided
`EventInterface` arguments: `triggerEvent(EventInterface $event)` and
`triggerEventUntil(callable $callback, EventInterface $event)`.
- `EventManagerInterface::attach()` and `detach()` change their signatures to
`attach($eventName, callable $listener, $priority = 1)` and `detach(callable
$listener, $eventName = null)`, respectively. Note that `$eventName` can now
only be a string event name, not an array or `Traversable`.
- `EventManagerInterface::setIdentifiers()` and `addIdentifiers()` change their
signatures to each only accept an *array* of identifiers.
- `SharedEventManagerInterface::getListeners()` changes signature to
`getListeners(array $identifiers, $eventName)` and now guarantees return of an
array. Note that the second argument is now *required*.
- `SharedEventManagerInterface::attach()` changes signature to
`attach($identifier, $eventName, callable $listener, $priority = 1)`. The
`$identifier` and `$eventName` **must** be strings.
- `SharedEventManagerInterface::detach()` changes signature to `detach(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()` and `detach()` have changed signature to
`attach(callable $callback)` and `detach(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` extends `LazyListener`, 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 of `LazyEventListeners` and/or
definitions to use to create them, acts as an aggregate for attaching a number
of such listeners at once.
- [#20](https://github.com/zendframework/zend-eventmanager/pull/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` and `StaticEventManager` 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()` and `getListeners()` are removed; they
had now purpose within the implementation.
- `EventManagerInterface::setEventClass()` was renamed to `setEventPrototype()`,
which now expects an `EventInterface` instance. That instance will be cloned
whenever a new event is created.
- `EventManagerInterface::attachAggregate()` and `detachAggregate()` are
removed. Users should use the `attach()` and `detach()` methods of the
aggregates themselves.
- `SharedEventAggregateAwareInterface` and `SharedListenerAggregateInterface`
are removed. This was an undocumented and largely unused feature.
- `SharedEventManagerAwareInterface` is removed. A new interface,
`SharedEventsCapableInterface` defines the `getSharedManager()` method from
the interface, and `EventManagerInterface` 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.
## 2.6.2 - 2016-01-12
### Added
- [#19](https://github.com/zendframework/zend-eventmanager/pull/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 assertion
`assertListenerAtPriority(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.
## 2.6.0 - 2015-09-29
### Added
- Added `Zend\EventManager\SharedEventsCapableInterface`. This interface will
largely replace `Zend\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](https://github.com/polyfractal/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::` and `EventManager::getEvents()` as
deprecated; this method will be removed in version 3.
- Marked `EventManagerInterface::` and `EventManager::getListeners()` as
deprecated; this method will be removed in version 3.
- Marked `EventManagerInterface::` and `Eventmanager::setEventClass()` as
deprecated; this method is renamed to `setEventPrototype(EventInterface $event)`
in version 3.
- Marked `EventManagerInterface::` and `EventManager::attachAggregate()` as
deprecated; this method will be removed in version 3.
- Marked `EventManagerInterface::` and `EventManager::detachAggregate()` as
deprecated; this method will be removed in version 3.
- Marked `SharedEventManagerInterface::` and `SharedEventManager::getEvents()`
as deprecated; this method will be removed in version 3.
### Removed
- Nothing.
### Fixed
- Nothing.
## 2.5.2 - 2015-07-16
### Added
- [#5](https://github.com/zendframework/zend-eventmanager/pull/5) adds a number
of unit tests to improve test coverage, and thus maintainability and
stability.
### Deprecated
- Nothing.
### Removed
- [#3](https://github.com/zendframework/zend-eventmanager/pull/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.
### Fixed
- [#5](https://github.com/zendframework/zend-eventmanager/pull/5) fixes a bug in
`FilterIterator` that occurs when attempting to extract from an empty heap.