if (!defined("ROOT_DIR")) { die("ROOT_DIR not defined." . PHP_EOL); } Options::set("CF_DIR", dirname(__FILE__), "Path to the framework"); Options::set("CF_PLUGINS_DIR", CF_DIR); Options::set("PLUGINS_DIR", ROOT_DIR . DIRECTORY_SEPARATOR . "plugins"); Options::set("ROOT_DIR", dirname(CF_DIR)); Options::set("CONFIG_DIR", ROOT_DIR . DIRECTORY_SEPARATOR . "config"); Options::set("CORE_PLUGIN", "Core"); Options::set("FORCE_HTTPS", false); Options::set("USE_STS", false); Options::set("DEFAULT_TIMEZONE", "Europe/Paris"); Options::set("DEBUG", false); Options::set("IS_CLI", defined("STDIN") && substr(php_sapi_name(), 0, 3) == "cli"); Options::set("IS_PHAR", substr(__FILE__, 0, 7) == "phar://"); if (!IS_CLI && FORCE_HTTPS && $_SERVER["HTTPS"] != "on") { if (USE_STS) { header('Strict-Transport-Security: max-age=500'); } else { header('Status-Code: 301'); header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); Output::finish(301); } } date_default_timezone_set(DEFAULT_TIMEZONE); if (function_exists('mb_internal_encoding')) { mb_internal_encoding('UTF-8'); } Plugins::registerAutoload(); Plugins::add(CORE_PLUGIN, Plugins::CORE); Plugins::addApp();
public static function loadConfig() { $conf = Config::getInstance(); $memcache = new MemCache(); if (array_key_exists("JCONFIG_FILE", $memcache)) { $conf->setData($memcache["JCONFIG_FILE"]); Logger::debug("Config loaded from cache"); foreach ($conf->get("plugins", array()) as $plugin) { Plugins::add($plugin); } } else { $cache = Cache::Priv(self::config, ".php"); if ($cache->check()) { if (file_exists(ROOT_DIR . "/composer.json")) { $conf->append(ROOT_DIR . "/composer.json", false, "composer"); } if (file_exists(CONFIG_DIR . "/config.json")) { $conf->append(CONFIG_DIR . "/config.json"); } if (file_exists(CONFIG_DIR . "/config.local.json")) { $conf->append(CONFIG_DIR . "/config.local.json"); } foreach (glob(CONFIG_DIR . "/*.json") as $file) { $bn = basename($file); if (substr($bn, 0, 7) != "config.") { $conf->append($file, false, substr($bn, 0, strlen($bn) - 5)); } } if (DEBUG && file_exists(CONFIG_DIR . "/config.debug.json")) { $conf->append(CONFIG_DIR . "/config.debug.json"); } $confsave = $conf->getData(); foreach ($conf->get("plugins", array()) as $plugin) { Plugins::add($plugin); } foreach (array_reverse(Plugins::findAll(self::config)) as $dirname) { if (file_exists($dirname . "/config.json")) { $conf->append($dirname . "/config.json"); } foreach (glob($dirname . "/*.json") as $file) { $bn = basename($file); if (substr($bn, 0, 7) != "config.") { $conf->append($file, false, substr($bn, 0, strlen($bn) - 5)); } } } Plugins::dispatchAllReversed("config", $conf); $conf->merge($confsave); ArrayWriter::toFile($conf->getData(), $cache->getFilename()); } else { $conf->setData(ArrayWriter::fromFile($cache->getFilename())); foreach ($conf->get("plugins", array()) as $plugin) { Plugins::add($plugin); } } $memcache["JCONFIG_FILE"] = $conf->getData(); } }