コード例 #1
0
 /**
  * Attach one or more listeners
  *
  * @param  EventManagerInterface $events
  * @param  int $priority
  * @return DefaultListenerAggregate
  */
 public function attach(EventManagerInterface $events, $priority = 1)
 {
     $options = $this->getOptions();
     $configListener = $this->getConfigListener();
     $locatorRegistrationListener = new LocatorRegistrationListener($options);
     $moduleLoaderListener = new ModuleLoaderListener($options);
     // High priority, we assume module autoloading (for FooNamespace\Module
     // classes) should be available before anything else
     $moduleLoaderListener->attach($events);
     $this->listeners[] = $moduleLoaderListener;
     $this->listeners[] = $events->attach(ModuleEvent::EVENT_LOAD_MODULE_RESOLVE, new ModuleResolverListener());
     // High priority, because most other loadModule listeners will assume
     // the module's classes are available via autoloading
     $this->listeners[] = $events->attach(ModuleEvent::EVENT_LOAD_MODULE, new AutoloaderListener($options), 9000);
     if ($options->getCheckDependencies()) {
         $this->listeners[] = $events->attach(ModuleEvent::EVENT_LOAD_MODULE, new ModuleDependencyCheckerListener(), 8000);
     }
     $this->listeners[] = $events->attach(ModuleEvent::EVENT_LOAD_MODULE, new InitTrigger($options));
     $this->listeners[] = $events->attach(ModuleEvent::EVENT_LOAD_MODULE, new OnBootstrapListener($options));
     $locatorRegistrationListener->attach($events);
     $configListener->attach($events);
     $this->listeners[] = $locatorRegistrationListener;
     $this->listeners[] = $configListener;
     return $this;
 }
コード例 #2
0
 public function testModuleLoaderListenerFunctionsAsAggregateListenerHasCache()
 {
     $options = new ListenerOptions(array('cache_dir' => $this->tmpdir, 'module_map_cache_key' => 'foo', 'module_map_cache_enabled' => true));
     file_put_contents($options->getModuleMapCacheFile(), '<?php return array();');
     $moduleLoaderListener = new ModuleLoaderListener($options);
     $moduleManager = $this->moduleManager;
     $this->assertEquals(1, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
     $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
     $moduleLoaderListener->attach($moduleManager->getEventManager());
     $this->assertEquals(2, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
     $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
 }