public static function init() { /** * Callback on fatal errors */ register_shutdown_function(function () { return \Lobby::fatalErrorHandler(); }); self::sysinfo(); self::config(); if (isset(self::$config['lobby_url'])) { $url_parts = parse_url(self::$config['lobby_url']); self::$host_name = $url_parts['host']; self::$url = self::$config['lobby_url']; } else { $base_dir = L_DIR; $doc_root = preg_replace("!{$_SERVER['SCRIPT_NAME']}\$!", '', $_SERVER['SCRIPT_FILENAME']); $base_url = preg_replace("!^{$doc_root}!", '', $base_dir); # ex: '' or '/mywebsite' $protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https'; $port = $_SERVER['SERVER_PORT']; $disp_port = $protocol == 'http' && $port == 80 || $protocol == 'https' && $port == 443 ? '' : ":{$port}"; $domain = $_SERVER['SERVER_NAME']; self::$url = "{$protocol}://{$domain}{$disp_port}{$base_url}"; self::$host_name = $domain; } }
public static function __constructStatic() { /** * Callback on fatal errors */ register_shutdown_function(function () { return \Lobby::fatalErrorHandler(); }); if (!isset($_SERVER["SERVER_NAME"])) { /** * Lobby is not loaded by browser request, but by a script * so $_SERVER vars won't exist. This will cause problems * for URL making, hence we must define it's CLI */ self::$cli = true; } self::sysInfo(); self::config(); $lobbyInfo = FS::get("/lobby.json"); if ($lobbyInfo !== false) { $lobbyInfo = json_decode($lobbyInfo); \Lobby::$version = $lobbyInfo->version; \Lobby::$versionName = $lobbyInfo->codename; \Lobby::$versionReleased = $lobbyInfo->released; } /** * Some checking to make sure Lobby works fine */ if (!is_writable(L_DIR)) { $error = array("Fatal Error", "The permissions of the Lobby folder is invalid. You should change the permission of <blockquote>" . L_DIR . "</blockquote>to read and write (0755)."); if (\Lobby::getSysInfo("os") === "linux") { $error[1] .= "<p clear>On Linux systems, do this in terminal : <blockquote>sudo chown \${USER}:www-data " . L_DIR . " -R && sudo chmod u+rwx,g+rw,o+r " . L_DIR . " -R</blockquote></p>"; } \Response::showError($error[0], $error[1]); } \Assets::config(array("basePath" => L_DIR, "baseURL" => self::getURL(), "serveFile" => "includes/serve-assets.php", "debug" => self::getConfig("debug"))); }