Esempio n. 1
0
 public function postModulesLoadsListener(\Zend\Module\ModuleEvent $event)
 {
     /** @var $cl \Zend\Module\Listener\ConfigMerger */
     $cl = $event->getConfigListener();
     $config = $cl->getMergedConfig(false);
     $this->config = array_merge($this->config, isset($config[__NAMESPACE__]) ? $config[__NAMESPACE__] : array());
 }
Esempio n. 2
0
 public function __invoke(ModuleEvent $e)
 {
     $module = $e->getModule();
     if (is_callable(array($module, 'init'))) {
         $module->init($e->getTarget());
     }
 }
 /**
  * loadModule 
  *
  * Check each loaded module to see if it implements LocatorRegistered. If it 
  * does, we add it to an internal array for later.
  * 
  * @param ModuleEvent $e 
  * @return void
  */
 public function loadModule(ModuleEvent $e)
 {
     if (!$e->getModule() instanceof LocatorRegistered) {
         return;
     }
     $this->modules[] = $e->getModule();
 }
Esempio n. 4
0
 /**
  * @param \Zend\Module\ModuleEvent $e
  * @return void
  */
 public function __invoke(ModuleEvent $e)
 {
     $module = $e->getModule();
     if (!$module instanceof AutoloaderProvider) {
         return;
     }
     $autoloaderConfig = $module->getAutoloaderConfig();
     AutoloaderFactory::factory($autoloaderConfig);
 }
 public function testModuleResolverListenerCanResolveModuleClasses()
 {
     $moduleResolver = new ModuleResolverListener();
     $e = new ModuleEvent();
     $e->setModuleName('ListenerTestModule');
     $this->assertInstanceOf('ListenerTestModule\\Module', $moduleResolver($e));
     $e->setModuleName('DoesNotExist');
     $this->assertFalse($moduleResolver($e));
 }
Esempio n. 6
0
 public function __invoke(ModuleEvent $e)
 {
     if (true === $this->skipConfig) {
         return;
     }
     $module = $e->getModule();
     if (is_callable(array($module, 'getConfig'))) {
         $this->mergeModuleConfig($module);
     }
 }
Esempio n. 7
0
 /**
  * @param \Zend\Module\ModuleEvent $e
  * @return void
  */
 public function __invoke(ModuleEvent $e)
 {
     $module = $e->getModule();
     if (!$module instanceof BootstrapListenerInterface) {
         return;
     }
     $moduleManager = $e->getTarget();
     $events = $moduleManager->events();
     $sharedEvents = $events->getSharedManager();
     $sharedEvents->attach('bootstrap', 'bootstrap', array($module, 'onBootstrap'));
 }
Esempio n. 8
0
 /**
  * Merge the config for each module 
  * 
  * @param ModuleEvent $e 
  * @return ConfigListener
  */
 public function loadModule(ModuleEvent $e)
 {
     if (true === $this->skipConfig) {
         return;
     }
     $module = $e->getParam('module');
     if (is_callable(array($module, 'getConfig'))) {
         $this->mergeModuleConfig($module);
     }
     return $this;
 }
Esempio n. 9
0
 /**
  * Registers annotations required for the Doctrine AnnotationReader
  *
  * @param  ModuleEvent $e
  * @throws RuntimeException
  */
 public function registerAnnotations(ModuleEvent $e)
 {
     $config = $e->getConfigListener()->getMergedConfig();
     $config = $config['doctrine_orm_module'];
     if ($config->use_annotations) {
         $annotationsFile = false;
         if (isset($config->annotation_file)) {
             $annotationsFile = realpath($config->annotation_file);
         }
         if (!$annotationsFile) {
             // Trying to load DoctrineAnnotations.php without knowing its location
             $annotationReflection = new ReflectionClass('Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver');
             $annotationsFile = realpath(dirname($annotationReflection->getFileName()) . '/DoctrineAnnotations.php');
         }
         if (!$annotationsFile) {
             throw new RuntimeException('Failed to load annotation mappings, check the "annotation_file" setting');
         }
         AnnotationRegistry::registerFile($annotationsFile);
     }
     if (!class_exists('Doctrine\\ORM\\Mapping\\Entity', true)) {
         throw new RuntimeException('Doctrine could not be autoloaded: ensure it is in the correct path.');
     }
 }
Esempio n. 10
0
 /**
  * Load a specific module by name.
  * 
  * @param string $moduleName 
  * @return mixed Module's Module class
  */
 public function loadModule($moduleName)
 {
     if (isset($this->loadedModules[$moduleName])) {
         return $this->loadedModules[$moduleName];
     }
     $class = $moduleName . '\\Module';
     if (!class_exists($class)) {
         throw new Exception\RuntimeException(sprintf('Module (%s) could not be initialized because Module.php could not be found.', $moduleName));
     }
     $module = new $class();
     $event = new ModuleEvent();
     $event->setModule($module);
     $this->events()->trigger(__FUNCTION__, $this, $event);
     $this->loadedModules[$moduleName] = $module;
     return $module;
 }