1<?php
2/**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link      http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license   http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10namespace Zend\EventManager;
11
12/**
13 * Abstract aggregate listener
14 */
15abstract class AbstractListenerAggregate implements ListenerAggregateInterface
16{
17    /**
18     * @var \Zend\Stdlib\CallbackHandler[]
19     */
20    protected $listeners = array();
21
22    /**
23     * {@inheritDoc}
24     */
25    public function detach(EventManagerInterface $events)
26    {
27        foreach ($this->listeners as $index => $callback) {
28            if ($events->detach($callback)) {
29                unset($this->listeners[$index]);
30            }
31        }
32    }
33}
34