Учебники

FuelPHP — Маршрутизация

Карты маршрутизации запрашивают 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-команды в файле конфигурации следующим образом.