<NME> AnnotationManager.php
<BEF> <?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Zend\Code\Annotation;

use Zend\Code\Annotation\Parser\ParserInterface;
use Zend\EventManager\Event;
use Zend\EventManager\EventManager;
use Zend\EventManager\EventManagerAwareInterface;
use Zend\EventManager\EventManagerInterface;

use function get_class;
use function is_object;

/**
 * Pluggable annotation manager
 *
 * Simply composes an EventManager. When createAnnotation() is called, it fires
 * off an event of the same name, passing it the resolved annotation class, the
 * annotation content, and the raw annotation string; the first listener to
 * return an object will halt execution of the event, and that object will be
 * returned as the annotation.
 */
class AnnotationManager implements EventManagerAwareInterface
{
    const EVENT_CREATE_ANNOTATION = 'createAnnotation';

    /**
     * @var EventManagerInterface
     */
    protected $events;

    /**
     * Set the event manager instance
     *
     * @param  EventManagerInterface $events
     * @return AnnotationManager
     */
    public function setEventManager(EventManagerInterface $events)
    {
        $events->setIdentifiers([
            __CLASS__,
            get_class($this),
        ]);
        $this->events = $events;

        return $this;
    }

    /**
     * Retrieve event manager
     *
     * Lazy loads an instance if none registered.
     *
     * @return EventManagerInterface
     */
    public function getEventManager()
    {
        if (null === $this->events) {
            $this->setEventManager(new EventManager());
        }

        return $this->events;
    }

    /**
     * 
     * @return EventManagerInterface
     */
    public function events()
    {
        if (null === $this->events) {
            $this->setEventManager(new EventManager());
        $this->getEventManager()
             ->attach(self::EVENT_CREATE_ANNOTATION, [$parser, 'onCreateAnnotation']);

        return $this;
    }

    /**
     * Create Annotation
     *
     */
    public function attach(Parser\ParserInterface $parser)
    {
        $events = $this->events();
        $events->attach(self::EVENT_CREATE_ANNOTATION, array($parser, 'onCreateAnnotation'));
        return $this;
    }

            'class'   => $annotationData[0],
            'content' => $annotationData[1],
            'raw'     => $annotationData[2],
        ]);

        $eventManager = $this->getEventManager();
        $results = $eventManager->triggerEventUntil(function ($r) {
            return is_object($r);
        }, $event);

        $annotation = $results->last();

        return is_object($annotation) ? $annotation : false;
    }
            'raw'     => $annotationData[2],
        ));

        $events  = $this->events();
        $results = $events->trigger($event, function ($r) {
            return (is_object($r));
        });
        $annotation = $results->last();
        return (is_object($annotation) ? $annotation : false);
    }

<MSG> Merge pull request zendframework/zf2#1688 from macnibblet/macnibblet/hotfix/events-in-annotationManager

getter function needed to be renamed after changes in the eventmanager
<DFF> @@ -73,7 +73,7 @@ class AnnotationManager implements EventManagerAwareInterface
      * 
      * @return EventManagerInterface
      */
-    public function events()
+    public function getEventManager()
     {
         if (null === $this->events) {
             $this->setEventManager(new EventManager());
@@ -89,8 +89,9 @@ class AnnotationManager implements EventManagerAwareInterface
      */
     public function attach(Parser\ParserInterface $parser)
     {
-        $events = $this->events();
-        $events->attach(self::EVENT_CREATE_ANNOTATION, array($parser, 'onCreateAnnotation'));
+        $this->getEventManager()
+             ->attach(self::EVENT_CREATE_ANNOTATION, array($parser, 'onCreateAnnotation'));
+
         return $this;
     }
 
@@ -111,10 +112,11 @@ class AnnotationManager implements EventManagerAwareInterface
             'raw'     => $annotationData[2],
         ));
 
-        $events  = $this->events();
-        $results = $events->trigger($event, function ($r) {
-            return (is_object($r));
-        });
+        $results = $this->getEventManager()
+                        ->trigger($event, function ($r) {
+                            return (is_object($r));
+                        });
+
         $annotation = $results->last();
         return (is_object($annotation) ? $annotation : false);
     }

Merge pull request zendframework/zf2#1688 from macnibblet/macnibblet/hotfix/events-in-annotationManager