code: public function attach(EventManagerInterface $events, $priority = 1)
      {
          $callback = array($this, 'injectXmlTemplate');
          /*
           * We need to hack a little, because injectViewModelListener is attached to the
           * shared event manager and triggered in Controller, we need to attach to the
           * EVENT_DISPATCH event in the shared manager, to be sure that this listener is
           * run before injectViewModelListener
           */
          $this->sharedListeners[] = $events->getSharedManager()->attach(
              'Zend\Stdlib\DispatchableInterface',
              MvcEvent::EVENT_DISPATCH,
              $callback,
              -96
          );
          $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH_ERROR, $callback, -96);
          $this->listeners[] = $events->attach(MvcEvent::EVENT_RENDER_ERROR, $callback, -96);
      }
docs: Attach to an event manager
  
  @param  EventManagerInterface $events