public function __construct($pathDir, $app = '', $ajax_conf = array()) { $q_string = $_SERVER['REQUEST_URI']; $is_utility = false; $utilityFound = ''; foreach (self::$utilitys as $utility) { if (stripos($q_string, $utility) !== false) { $is_utility = true; $utilityFound = $utility; break; } } CORE_dispatcher::defineUtility($utilityFound); CORE_dispatcher::dispath($q_string, $is_utility); $this->params = CORE_dispatcher::getParams(); $this->module = CORE_dispatcher::getModule(); $this->event = CORE_dispatcher::getEvent(); CORE_router::router($app, $this->module, $this->event, $this->params, $ajax_conf, $utilityFound); }
public static function dispath($q_string, $is_utility) { if ($is_utility) { self::$module = $utility; } else { /** * Obtenemos la cadena de consulta hasta antes de los parametros GET */ if (strpos($q_string, '?') !== FALSE) { $q_string = substr($q_string, 0, strpos($q_string, '?')); } /** * Verificamos si el proyecto esta contenido dentro de alguna carpeta * * Ambientes normales de desarrollo */ $from_path = substr($_SERVER['SCRIPT_NAME'], 1); $folder = ''; if (stripos($from_path, '/') !== false) { $folder = substr($from_path, 0, strripos($from_path, '/') + 1); } /** * Obtenemos la porcion de los componentes de la URL */ if ($folder) { $string_components = str_replace('/' . $folder, '', $q_string); } else { $string_components = $q_string; } /** * Partimos los componentes para obtener 'modulo', 'evento', 'parametros' */ $components = explode('/', $string_components); $realComponents = array(); $i = 0; foreach ($components as $component) { if (!$component) { unset($components[$i]); } else { $realComponents[] = $component; } ++$i; } /** * Obtenemos el modulo a ejecutar, si no esta definido entonces ejecutamos el dejado por defecto */ if (empty($realComponents[0])) { self::$module = DEFAULT_MOD; /** * Obtenemos el evento a ejecutar, si no fue definido entonces ejecutamos por defecto 'default_event' */ if (empty($realComponents[2])) { self::$event = 'default_event'; } else { self::$event = $realComponents[2]; } } else { if (stripos($realComponents[0], '.php') !== false) { unset($realComponents[0]); if (empty($realComponents[1])) { self::$module = DEFAULT_MOD; } else { self::$module = $realComponents[1]; } if (empty($realComponents[2])) { self::$event = 'default_event'; } else { self::$event = $realComponents[2]; } } else { self::$module = $realComponents[0]; /** * Obtenemos el evento a ejecutar, si no fue definido entonces ejecutamos por defecto 'default_event' */ if (empty($realComponents[1])) { self::$event = 'default_event'; } else { self::$event = $realComponents[1]; } } } $params = array(); $countRealC = count($realComponents); for ($i = 2; $i < $countRealC; ++$i) { $params[] = $realComponents[$i]; } $c_params = $params; self::$params = $c_params; } }