/** * The constructor * * @param string $appBaseDir - The dir containing /App directory * @param string $appName * @param string $uri * @throws Exception */ public function __construct($appBaseDir, $appName = "Www", $uri = null) { if (!$uri) { $uri = implode("/", Http\Request::getUrlSegments()); } Env::setAppRootDir($appBaseDir); $appName = self::formatName($appName); if (!is_dir(Env::getAppRootDir())) { throw new Exception("The application root: 'App' directory doesn't\n exist at: " . Env::getAppRootDir()); } else { Autoloader::register(dirname(Env::getAppRootDir())); $this->appDir = Env::getAppRootDir() . "/{$appName}"; if (!is_dir($this->appDir)) { throw new Exception("The application name: '{$appName}' doesn't\n exist at: " . $this->appDir); } $this->setUri($uri); $this->baseNamespace = "App\\{$appName}"; $this->config = (new Config("VoodooApp"))->loadFile($this->appDir . "/Config" . Config::EXT); $routes = (new Config("AppRoutes"))->loadFile($this->appDir . "/Routes" . Config::EXT); $this->setRouting($routes->get("path") ?: []); if ($this->config->get("application.defaultModule")) { $this->defaultModule = $this->config->get("application.defaultModule"); } if ($this->config->get("application.defaultController")) { $this->defaultController = $this->config->get("application.defaultController"); } } }
/** * Return the user agent ip * @return string */ public function getIp() { return Http\Request::getIp(); }