/** * Start App. */ public function start() { if ($this->started) { return; } $this->started = true; $this->getConfigLoader()->setEnvironment($this->getEnvironment()); $this->config = $this->getConfigLoader()->load(); $this->container->set([Config::class, IConfig::class], $this->config); $this->config->set('env', $this->getEnvironment()); $this->config->set('debug', $this->getDebug()); $this->eventer->dispatch(new ConfigLoadedEvent($this->config)); $this->kernel->initialize(); $this->eventer->dispatch(new KernelInitializedEvent($this->kernel)); $this->kernel->boot(); $this->eventer->dispatch(new KernelBootedEvent($this->kernel)); $this->eventer->dispatch(new AppStartedEvent($this)); }