normal($route, $args); } if($local == self::SYSTEM) { $this->system($route, $args); } } private function system($route, $args = array()) { $path = ''; $parts = explode('/', str_replace('../', '', (string)$route)); foreach ($parts as $part) { $path .= $part; if (is_dir(Config::DIR_SYSTEM() . '' . $path)) { $path .= '/'; array_shift($parts); continue; } if (is_file(Config::DIR_SYSTEM() . '' . str_replace('../', '', $path) . '.php')) { $this->file = Config::DIR_SYSTEM() . '' . str_replace('../', '', $path) . '.php'; $this->class = 'System' . preg_replace('/[^a-zA-Z0-9]/', '', $path); $this->classAlt = [ 'legacy' => $this->class, 'direct' => preg_replace('/[^a-zA-Z0-9]/', '', $part) ]; array_shift($parts); break; } } if ($args) { $this->args = $args; } $method = array_shift($parts); if ($method) { $this->method = $method; } else { $this->method = 'index'; } } private function normal($route, $args = array()) { $path = ''; $pathC = ""; $parts = explode('/', str_replace('../', '', (string)$route)); $this->route = $route; foreach ($parts as $part) { $pathNew = $path; $path .= $part; if (is_dir(Config::DIR_APP_MODULAR() . $path)) { $path = $path.'/'; array_shift($parts); continue; }elseif (is_dir(Config::DIR_APP_MODULAR() . ucfirst($path))) { $path = ucfirst($path).'/'; array_shift($parts); continue; }elseif (is_dir(Config::DIR_APPLICATION() . 'controller/' . $path)) { $path .= '/'; array_shift($parts); continue; } $strReplaceOnPathNew = str_replace('../', '', $pathNew); $strReplaceOnPath = str_replace('../', '', $path); $strReplaceOnPart = str_replace('../', '', $part); $pregReplaceOnPath = preg_replace('/[^a-zA-Z0-9]/', '', $path); $pregReplaceOnPart = preg_replace('/[^a-zA-Z0-9]/', '', $part); if (is_file(Config::DIR_APP_MODULAR() . $strReplaceOnPathNew . 'Controller/' . $strReplaceOnPart . '.php')) { $this->file = Config::DIR_APP_MODULAR() . $strReplaceOnPathNew . 'Controller/' . $strReplaceOnPart . '.php'; $this->class = 'Controller' . $pregReplaceOnPath; $this->classAlt = [ 'class' => $this->mountClass($strReplaceOnPathNew, $pregReplaceOnPart), 'legacy' => $this->class, 'ucfirst' => ucfirst($pregReplaceOnPart), 'direct' => $pregReplaceOnPart ]; array_shift($parts); break; } elseif (is_file(Config::DIR_APP_MODULAR() . $strReplaceOnPathNew . 'Controller/' . ucfirst($strReplaceOnPart) . '.php')) { $this->file = Config::DIR_APP_MODULAR() . $strReplaceOnPathNew . 'Controller/' . ucfirst($strReplaceOnPart) . '.php'; $this->class = 'Controller' . $pregReplaceOnPath; $this->classAlt = [ 'class' => $this->mountClass($strReplaceOnPathNew, $pregReplaceOnPart), 'legacy' => $this->class, 'ucfirst' => ucfirst($pregReplaceOnPart), 'direct' => $pregReplaceOnPart ]; array_shift($parts); break; } elseif (is_file(Config::DIR_APPLICATION() . 'controller/' . $strReplaceOnPath . '.php')) { $this->file = Config::DIR_APPLICATION() . 'controller/' . $strReplaceOnPath . '.php'; $this->class = 'Controller' . $pregReplaceOnPath; $this->classAlt = [ 'class' => $this->mountClass($strReplaceOnPathNew, $pregReplaceOnPart), 'legacy' => $this->class, 'ucfirst' => ucfirst($pregReplaceOnPart), 'direct' => $pregReplaceOnPart ]; array_shift($parts); break; }elseif (is_file(Config::DIR_APPLICATION() . 'controller/' . strtolower($strReplaceOnPath) . '.php')) { $this->file = Config::DIR_APPLICATION() . 'controller/' . strtolower($strReplaceOnPath) . '.php'; $this->class = 'Controller' . $pregReplaceOnPath; $this->classAlt = [ 'class' => $this->mountClass($strReplaceOnPathNew, $pregReplaceOnPart), 'legacy' => $this->class, 'ucfirst' => ucfirst($pregReplaceOnPart), 'direct' => $pregReplaceOnPart ]; array_shift($parts); break; } } if ($args) { $this->args = $args; } $method = array_shift($parts); if ($method) { $this->method = $method; } else { $this->method = 'index'; } if (!$this->classAlt) { $lastTry = explode('/', $this->route, 2); $class1 = $this->mountClass($lastTry[0] . "\\", str_replace("/", "\\", end($lastTry))); $class2 = implode("\\", explode("\\", $class1, -1)); if(class_exists($class1)){ $this->classAlt = [ 'class' => $class1 ]; $this->method = 'index'; } elseif(class_exists($class2)){ $this->classAlt = [ 'class' => $class2 ]; $this->method = $method; } } } }