<?php
namespace core\Controllers;
class Route {
public $uri;
public $controller;
public $action;
public function __construct(){
$url = htmlspecialchars( trim( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) );
if (substr($url, -1)=='/') {
$this->uri = substr($url, 0, -1);
} else {
$this->uri = $url;
}
}
public function get( $pathUrl, $nameController, $action ) {
if ($pathUrl == $this->uri) {
$str = __DIR__.'/../../App/Controllers/'.$nameController.'.php';
$pathClass = str_replace('/', '\\', $str);
if ( file_exists( $pathClass ) ){
$str2 = 'App\\Controllers\\'.$nameController;
$this->controller = new $str2();
if ( method_exists($this->controller, $action) ){
return $this->controller->$action();
} else {
echo 'Не найден метод класса-контроллера';
}
} else {
echo 'Не найден контроллер';
}
} else {
echo 'Не равен';
}
}
}
str_replace('/', '\\', $str)Тестовый сервер на windows? В последствии он только на windows и будет крутится?
if (file_exists ...Не лучше ли поручить подключение классов автолоадеру? Он специально для таких случаев и придуман.
echo
с выводом ошибок в браузер - это жесть. Надеюсь, что это временная заглушка.