/** * Le dispatcher qui va lancer l'action en fonction des paramètres * @return void */ public static function init() { // On stock la variable d'environnement qui vient d'apache, pour cela, placer // SetEnv Environment (development|production|test) $environment = getenv('Environment'); if ($environment === false) { $environment = 'production'; } Registery::set('environment', $environment); // configuration du site $config = (require LI_APP . '/Config/Config.php'); Registery::set('config', $config[$environment]); $config = Registery::get('config'); // configuration par default Registery::setAndMerge('config', array('default_module' => 'Front', 'default_controller' => 'Index', 'default_action' => 'Index'), true); Registery::load('routes', LI_APP . '/Config/Routes.php'); $db_config = array(); if (file_exists(LI_APP . '/Config/Database.php')) { $db_configs = (require LI_APP . '/Config/Database.php'); $db_config = $db_configs[$environment]; Registery::set('db_config', $db_config); // initialisation de la bdd if (!empty($db_config['dsn']) && !empty($db_config['user'])) { Registery::set('db', new Db($db_config['dsn'], $db_config['user'], $db_config['pass'])); } } // On construit l'objet requete qui va contenir les params d'entrées // ainsi que l'analyse de l'url pour déterminer l'app/controller/action // à utiliser $request = new Request(); $params =& $request->getParams(); Registery::set('params', $params); // On insère l'éventuel helper lié à notre application if (file_exists(LI_APP . '/Helper/Helper.php')) { require_once LI_APP . '/Helper/Helper.php'; } // si le projet contient un fichier boot dans la config if (file_exists(LI_APP . '/Config/Boot.php')) { include_once LI_APP . '/Config/Boot.php'; if (function_exists('onBoot')) { onBoot($request, $config); } } $response = self::launch($request); $response->out(); }
public function init() { // On commence à virer les magic quote (beuuuuuuuuuuuurk) $this->stripslashes(); $config = Registery::get('config'); if ($config['url_handler'] == 'modrewrite') { $pathinfo = isset($_GET['pathinfo']) ? $_GET['pathinfo'] : ''; } elseif ($config['url_handler'] == 'multiviews') { if (isset($_SERVER['PATH_INFO'])) { $pathinfo = substr($_SERVER['PATH_INFO'], 1, strlen($_SERVER['PATH_INFO']) - 1); } } elseif ($config['url_handler'] == 'querystring') { if (isset($_GET['qs'])) { $pathinfo = substr($_GET['qs'], 1, strlen($_GET['qs']) - 1); } } elseif ($config['url_handler'] == 'simple') { // Do nothing ! } else { throw new \Exception('Impossible de trouver un support pour ce type d\'url'); } $urlEngineClassName = 'Mynd\\Core\\Url\\' . ucwords($config['url_handler']) . 'Url'; try { $urlEngine = new $urlEngineClassName(); $route = $urlEngine->url2params($pathinfo, $_GET); $this->params = $route['params']; $this->routeName = $route['route_name']; if (isset($this->params['pathinfo'])) { unset($this->params['pathinfo']); } } catch (Exception $e) { echo $e->getMessage(); die; } $this->params = array_merge($this->params, $_POST); // On stocke les paramètres dans le registre Registery::set('route_name', $this->routeName); Registery::set('params', $this->params); }