zendframework/zf2 — pull request #3876 by Ocramius (2013-02-22 23:40:30+00:00)
Title: Implementing and re-utilizing an abstract aggregate listener

As of zendframework/zf2#3874, I abstracted the duplicate logic of the aggregate listener into an abstract class. This PR introduces minor BCs that should be discussed first:

1. return value of `attach` (now `void`)
2. return value of `detach` (now `void`)
3. rename of protected property to `listeners` to `callbacks` (maybe `callbackHandlers`? let me know...)
4. `Zend\Cache\Storage\Plugin\AbstractPlugin` now inheriting an additional abstract method (this breaks eventual plugins extending it)
5. aggregate listeners in `Zend\Cache` don't throw exceptions anymore if the listener is attached multiple times
6. aggregate listeners in `Zend\Cache` don't throw exceptions anymore if the listener is detached and was never attached

Ping @marc-mabe