/** * 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']); }