<?php
class router
{
public function __construct()
{
$url = htmlspecialchars($_SERVER['REQUEST_URI']);
$url = explode("?", $url);
$url = rtrim($url[0], '/');
$exp = explode('/', $url);
$controller = (!empty($exp[1])?$exp[1]:'main');
$method = (!empty($exp[2])?$exp[2]:'index');
if(isset($exp[3]))
{
for($s=3;$s<count($exp);$s++)
{
$param .= $exp[$s].'/';
}
$param = rtrim($param, '/');
} else $param = false;
$controllers = ROOT.'/app/controllers/'.$controller.'.php';
if(file_exists($controllers))
{
$class = new $controller();
if(method_exists($controller, $method))
{
$class->$method($param);
} else include_once NOT_FOUND;
} else include_once NOT_FOUND;
}
}
?>
есть ли замечания?
Сделал передачу параметров. Позже напишу небольшой класс для работы с параметрами. Всё ли я правильно сделал? Пример http://perfwm.ru http://perfwm.ru/main/index/phpinfo . Ошибка not found, делал сам, http://perfwm.ru/main/phpinfo
Белый экран
Делал класс для работы с параметрами Норм вышло.
а что за NOT_FOUND? где то определена константа? хорошо
<?php
class param
{
public static $set;
public static function write($p, $explode = '/')
{
$s = rtrim($p, $explode);
$s = explode($explode, $s);
self::$set = $s;
}
public static function read($r, $i = 0)
{
if(self::$set[$i] == $r)
{
return true;
} else {
return false;
}
}
}
?>
Добавлено 20.10.14 в 12:19:02:
<?php
class main
{
public function index($arr)
{
param::write($arr);
param::write(param::$set[0], '-');
if(param::read('phpinfo'))
{
echo "<a href='/main/index/phpinfo-ok'>Информация о сайте</a>";
if(param::read('ok', 1))phpinfo();
} else {
print("Welcome to my site..."
}
}
}
?>
Добавлено 20.10.14 в 12:20:29:
Пока вроде адекватно получается. Но встал вопрос о шаблонах. Как лучше реализовать? Есть у меня вариант. Позже напишу.
я моск не шатал я взял фреймворк и вкурил инфу крч и норм так не надо великов мутить
Добавлено 20.10.14 в 12:42:32:
Хривой перехват бро
The requested URL /lol/ was not found on this server.
немного подругому реализуй могу написать как в лс ибо тут лень попоже если чё пиши я и с шаблонизатором помогу