configDir; } /** * @param string $configDir */ public function setConfigDir(string $configDir): void { $this->configDir = $configDir; } /** * @return string */ public function getProjectDir(): string { return $this->projectDir; } /** * @param string $projectDir */ public function setProjectDir(string $projectDir): void { $this->projectDir = $projectDir; } /** * @return string */ public function getTemplateDir(): string { return $this->templateDir; } /** * @param string $templateDir */ public function setTemplateDir(string $templateDir): void { $this->templateDir = $templateDir; } /** * @return Router */ public function getRouter(): Router { return $this->router; } public function handle(): Response { $this->router = new Router(); $this->router->parseRoutes($this->getConfigDir(), 'routes.yaml'); $request = $this->parseRequest(); return $this->router->route($request, $this); } public function parseDotEnv(string $path): void { $dotenv = new Dotenv(); $dotenv->loadEnv($path); } private function parseRequest(): Request { $request = Request::createFromGlobals(); return $request; } public function getDbCon(): Connection { return DriverManager::getConnection(['url' => $_ENV['DATABASE']]); } }