[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Роутинг на PHP без базы данных
Страницы: 1, 2
Astin
Простой пример


$parse = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

$url = str_replace( "/", "", $parse );

$request = !empty($url) ? $url : 'main';


$vars = array('main' => 'index',
'faq' => 'faq'
);

if( array_key_exists($request, $vars) ) {

include 'model/'. $vars[$request] .'.php';
} else {
header("HTTP/1.1 404 Not Found");
include 'model/404.php';
exit();
}
miketomlin
Astin, parse_url плохо подходит для данного случая (может «сломаться»). Есть гораздо более простые и надежные способы отделить строку параметров.

str_replace тут тоже – полный абзац. Я сначала даже не понял, для чего вы ее пытаетесь использовать (первая мысль: убирает слеши между компонентами пути? blink.gif). Есть trim.

Выше давал ссылку, где все эти моменты учтены.

Про возню с главной (main и т.п.) уже писал в теме. Во всех наших движках, например, внутренним каноническим путем для главной является пустая строка и все хорошо! А в некоторых даже «контроллер» и вьюшка (речь просто о файлах) могут наследовать это имя (при добавлении расширения получится имя файла .php и т.п.), если оно не переопределено более подходящим для файла именем.
miketomlin
P.S. И модель (я про model/) – это другое. Лучше, чтобы фронт-контроллер про них вообще не знал.
Astin
Цитата (miketomlin @ 11.03.2020 - 01:03)
P.S. И модель (я про model/) – это другое. Лучше, чтобы фронт-контроллер про них вообще не знал.

Да model/ написано от фанаря
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.