public static function connect() { WFELoader::load("core/libs/redbean/rb.php"); WFELoader::load("core/libs/QueryBuilder/QueryBuilder.php"); $host = WFEConfig::get('db::host'); $name = WFEConfig::get('db::name'); $user = WFEConfig::get('db::user'); $password = WFEConfig::get('db::password'); $dbEnabled = WFEConfig::get('db::enabled'); if ($dbEnabled == true) { R::setup('mysql:host=' . $host . '; dbname=' . $name, $user, $password); } }
/** * Initialiaze Templating */ public static function init() { if (!self::$init) { self::$init = true; self::$smarty = new Smarty(); if (WFEConfig::get("env") == "prod") { self::$smarty->debugging = false; } else { self::$smarty->debugging = true; } self::$smarty->setTemplateDir(array('templates' => ROOT . self::TPL_PATH)); self::$smarty->setCompileDir(ROOT . '/app/cache/smarty/template_c/'); self::registerPluginsSmarty(); } }
/** * Routes a WFERequest * @param \core\WFERequest $request * @return \core\WFEResponse * @throws WFEDefinitionException If a controller or an action is not defined */ public static function run(WFERequest $request) { $route = $request->getRoute(); if ($route == null) { $route = WFERoute::get('WFE404'); $request = new WFERequest('GET', 'WFE404'); } else { if (self::isInitialRequest() && !$request->isAjax() && $route->getController() != WFEConfig::get('publicController')) { self::$initial = false; $oldRequest = $request; $content = WFERouter::run($oldRequest)->getContent(); self::$initial = true; $request = new WFERequest('GET', 'WFEMain', array(array('content' => $content, 'WFERoutes' => WFERoute::getInstances(), 'appRoute' => APP_PATH))); } } $route = $request->getRoute(); self::$currentRequest = $request; self::$controllers[] = $route->getController(); self::$actions[] = $route->getAction(); if (!self::controllerExists(self::getCurrentController())) { throw new WFEDefinitionException('The controller : ' . self::getCurrentController() . ' does not exist'); } $mycontroller = self::getControllerClass(self::getCurrentController()); $controller = new $mycontroller(); if (get_class($controller) != 'core\\WFEController' && !is_subclass_of($controller, 'core\\WFEController')) { throw new WFEDefinitionException('Controller : ' . $mycontroller . ' must extends core\\WFEController'); } $myaction = self::getCurrentAction(); if (!self::actionExists($controller, $myaction)) { throw new WFEDefinitionException('The action : ' . $myaction . ' does not exist'); } $response = \call_user_func_array(array($controller, $myaction), $request->getArguments()); if (get_class($response) != 'core\\WFEResponse' && !is_subclass_of($response, 'core\\WFEResponse')) { throw new WFEDefinitionException('Action : ' . $myaction . ' in controller : ' . $mycontroller . ' must return a core\\WFEResponse object'); } if (sizeof(self::$controllers) == 1 && self::$initial) { $response->send(); } else { array_pop(self::$controllers); array_pop(self::$actions); return $response; } }
// set exception handler set_exception_handler(function (Exception $e) { if (WFEConfig::get('env') == 'dev') { exit($e->getMessage()); } elseif (WFEConfig::get('env') == 'prod') { $response = WFERouter::run(new WFERequest('GET', 'WFE500')); $response->send(); } }); // Register autoload WFEAutoload::register(__NAMESPACE__); // Load main config WFELoader::load('app/config/config.php'); // Load Database \core\ORM\WFEDb::connect(); // Load smarty WFELoader::load('core/libs/smarty/Smarty.class.php'); // set environment spec if (WFEConfig::get('env') == 'dev') { error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_ALL); } elseif (WFEConfig::get('env') == 'prod') { error_reporting(0); } else { throw new WFEDefinitionException('Config settings env is not set properly (must be dev or prod)'); } // init session WFEsession::init(); // init request data $request = new WFERequest(); // Routes request and get response WFERouter::run($request);