Beispiel #1
0
 /**
  * Module ini function that import the current domain files or it's alias
  *
  * @param ModuleManager $moduleManager
  */
 public function init(ModuleManager $moduleManager)
 {
     $events = $moduleManager->getEventManager();
     $events->attach(ModuleEvent::EVENT_MERGE_CONFIG, function (EventInterface $e) {
         $configListener = $e->getConfigListener();
         $config = $configListener->getMergedConfig(false);
         $domain = DomainService::getDomain();
         $domainDir = null;
         if (!isset($config[$domain])) {
             if (isset($config['losdomain']['domain_dir'])) {
                 $domainDir = $config['losdomain']['domain_dir'];
                 $domainConfig = DomainOptions::importDomain($domainDir, $domain);
                 $config = ArrayUtils::merge($config, $domainConfig);
                 $configListener->setMergedConfig($config);
             }
         }
         if ($domainDir !== null && isset($config[$domain]) && array_key_exists('alias', $config[$domain])) {
             $alias = $config[$domain]['alias'];
             $aliasConfig = DomainOptions::importDomain($domainDir, $alias);
             $config[$domain] = $aliasConfig[$alias];
             $config = ArrayUtils::merge($config, $aliasConfig);
             unset($config[$alias]);
             $configListener->setMergedConfig($config);
         }
     });
 }
 public function testCanImportDomain()
 {
     $config = DomainOptions::importDomain(__DIR__ . '/../_assets/domains', 'test.dev');
     $this->assertArrayHasKey('test.dev', $config);
     $this->assertArrayHasKey('layout', $config['test.dev']);
     $this->assertSame('layout/test.dev', $config['test.dev']['layout']);
     $this->assertArrayHasKey('view_manager', $config);
     $this->assertArrayHasKey('template_map', $config['view_manager']);
     $this->assertArrayHasKey('layout/teste.local', $config['view_manager']['template_map']);
     $this->assertContains('_assets/domains/test.dev/view/layout/layout_dev.phtml', $config['view_manager']['template_map']['layout/teste.local']);
 }