routes массив, // который хранится в файле routes.php, при помощи - include $this->routes = include($routesPath); } // метод будет принимать управление от фронтконтроллера public function run() { echo ("Запуск контроллера!"); // var_dump($this->routes); // обратимся к методу getURI() $uri = $this->getURI(); echo $uri; foreach ($this->routes as $uriPattern => $path) { // echo "
$uriPattern -> $path"; if (preg_match("~$uriPattern~", $uri)) { $segments = explode('/', $path); $controllerName = array_shift($segments) . 'Controller'; // делает первую букву строки заглавной $controllerName = ucfirst($controllerName); var_dump($controllerName); // выводим имя контроллера $actionName = 'action' . ucfirst(array_shift($segments)); $controllerFile = __DIR__ . '/../app/controller/' . $controllerName . '.php'; var_dump($controllerFile); if (file_exists($controllerFile)) { include_once($controllerFile); } $controllerObject = new $controllerName; $result = $controllerObject->$actionName(); // выводим название экшена echo '
' . $result; } } } private function getURI() { if (!empty($_SERVER['REQUEST_URI'])) { return trim($_SERVER['REQUEST_URI'], '/'); } } }