Карты маршрутизации запрашивают URI для метода конкретного контроллера. В этой главе мы подробно обсудим концепцию маршрутизации в FuelPHP.
конфигурация
Файл конфигурации маршрутов находится по адресу fuel / app / config / rout.php . Файл routs.php по умолчанию определяется следующим образом:
<?php return array ( '_root_' => 'welcome/index', // The default route '_404_' => 'welcome/404', // The main 404 route 'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), );
Здесь _root_ — это предопределенный маршрут по умолчанию, который будет сопоставляться при запросе приложения с корневым путем, например, http: // localhost: 8080 / . Значением _root_ является контроллер и действие, которое должно быть разрешено при его сопоставлении. welcome / index преобразуется в контроллер Controller_Welcome и метод действия action_index . Точно так же у нас есть следующие зарезервированные маршруты.
-
root — маршрут по умолчанию, когда не указан URI.
-
403 — Выдает, когда HttpNoAccessException найден.
-
404 — Возвращается, когда страница не найдена.
-
500 — Выдает, когда HttpServerErrorException найден.
root — маршрут по умолчанию, когда не указан URI.
403 — Выдает, когда HttpNoAccessException найден.
404 — Возвращается, когда страница не найдена.
500 — Выдает, когда HttpServerErrorException найден.
Простая маршрутизация
Маршрут сравнивается с URI запроса. Если совпадение найдено, запрос направляется на URI. Простая маршрутизация описывается следующим образом:
return array ( 'about' => 'site/about', 'login' => 'employee/login', );
Здесь, о совпадениях http: // localhost: 8080 / about и разрешает контроллер, Controller_Site и метод действия action_about
вход в систему соответствует http: // localhost: 8080 / login и разрешает контроллер, Controller_Login и метод действия action_login
Продвинутая маршрутизация
Вы можете включить любое регулярное выражение в ваши маршруты. Fuel поддерживает следующие расширенные функции маршрутизации —
-
: any — соответствует любому значению с этого момента в URI, не соответствует «ничему»
-
: все — как: любое, но также соответствует «ничто»
-
: сегмент — соответствует только одному сегменту в URI, но этот сегмент может быть любым
-
: num — соответствует любому числу
-
: alpha — соответствует любым буквенным символам, включая UTF-8.
-
: alnum — соответствует любым буквенно-цифровым символам, включая UTF-8.
: any — соответствует любому значению с этого момента в URI, не соответствует «ничему»
: все — как: любое, но также соответствует «ничто»
: сегмент — соответствует только одному сегменту в URI, но этот сегмент может быть любым
: num — соответствует любому числу
: alpha — соответствует любым буквенным символам, включая UTF-8.
: alnum — соответствует любым буквенно-цифровым символам, включая UTF-8.
Например, следующий маршрут соответствует URI http: // localhost: 8080 / hello / FuelPHP и разрешает контроллер, Controller_Welcome и действие action_hello
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
Соответствующий метод действия в Controller_Welcome выглядит следующим образом:
public function action_hello() { $this->name = Request::active()->param('name', 'World'); $message = "Hello, " . $this->name; echo $message; }
Здесь мы использовали класс Request, чтобы получить параметр name из URL. Если имя не найдено, тогда мы используем World в качестве значения по умолчанию. Мы изучим класс Request в главе « Запрос и ответ» .
Результат
HTTP Метод Действие
FuelPHP поддерживает маршруты, соответствующие действиям с префиксом HTTP. Ниже приведен основной синтаксис.
class Controller_Employee extends Controller { public function get_index() { // called when the HTTP method is GET. } public function post_index(){ // called when the HTTP method is POST. } }
Мы можем направить ваши URL-адреса на контроллеры и действия на основе HTTP-команды в файле конфигурации следующим образом.