Ejemplo n.º 1
0
 /**
  * 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();
 }
Ejemplo n.º 2
0
 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);
 }