/** * @param ApplicationInterface|Application $application */ private function registerModuleManager(ApplicationInterface $application) { $container = $application->getContainer(); if (!$container->has(ModuleManagerInterface::class)) { $container->share(ModuleManagerInterface::class, $container->get('application.internal.moduleManager', [$application])); } }
/** * Create configurator instance with configuration from internal configurator * * @param ApplicationInterface|Application $application * @param ComponentManager $runner * * @return bool * */ public function init(ApplicationInterface $application, ComponentManager $runner) { $options = ['cache' => false]; $data = $runner->getData(); $configuration = isset($data['config']) ? $data['config'] : []; $options = $runner->getOptions($this); foreach ($configuration as $key => $file) { if (is_array($file)) { unset($configuration[$key]); continue; } if (!is_file($file)) { unset($configuration[$key]); } } $application->getContainer()->share(ConfiguratorInterface::class, $application->getContainer()->get('application.internal.config', [$configuration, $options])); return true; }
/** * Initialize dot env files from configuration * * ``` * $options['config'] = [ * __DIR__ . '/.env', * __DIR__ . '/customfile.env', * ]; * ``` * * @param Application|ApplicationInterface $application * @param ComponentManager $runner * @return bool */ public function init(ApplicationInterface $application, ComponentManager $runner) { $data = $runner->getData(); if (!array_key_exists('config', $data)) { return false; } $configuration = $data['config']; foreach ($configuration as $key => $path) { if (!is_string($path)) { continue; } if (substr($path, -4) !== '.env') { continue; } $application->getContainer()->get(Dotenv::class, [dirname($path), basename($path)]); unset($data['config'][$key]); } $runner->setData($data); return true; }
/** * @param ApplicationInterface|Application $application */ public function register(ApplicationInterface $application) { $logger = $application->getLogger(static::class); $sortedProviders = (new Dependency\Sort())->sort($this->components); $iterator = new \ArrayIterator($sortedProviders); //go to top $iterator->rewind(); while ($iterator->valid()) { /** @var Component $component */ $component = $iterator->current(); $result = $component->init($application, $this); $providerName = $iterator->key(); $result ? $logger->debug($providerName) : $logger->error($providerName); $this->setPrevious($component); $iterator->next(); } }
/** * Initialize application provider * * @param ApplicationInterface|Application $application * @param ComponentManager $runner * * @return bool * */ public function init(ApplicationInterface $application, ComponentManager $runner) { $application->getContainer()->addServiceProvider(ApplicationProvider::class); return true; }
/** * Initialize default translations * * ``` * return [ * 'translations' => [ * 'defaultLanguage' => 'en', * 'collection' => [ * '<languagekey>' => [] * ] * ] * ]; * ``` * * @param ApplicationInterface|Application $application * @param ComponentManager $runner * * @return bool * */ public function init(ApplicationInterface $application, ComponentManager $runner) { $application->addTranslation('user', $application->getConfig('translations.collection', [])); return true; }