Контроллеры отвечают за обработку каждого запроса, поступающего в приложение FuelPHP. Согласно FuelPHP, контроллеры расположены на уровне топлива / приложения / классы / контроллер / . Давайте сначала создадим Контроллер Сотрудника.
employee.php
<?php class Controller_Employee extends Controller { public function action_home() { echo "FuelPHP-Employee application!"; } public function action_index() { echo "This is the index method of employee controller"; } }
Методы контроллера
Контроллеры обрабатывают веб-запрос, используя один из его методов действия _. Мы можем создать как можно больше методов action_ в зависимости от требований приложения. Метод action_ по умолчанию — action_index . Метод action_index может быть вызван любым из следующих URL.
http://localhost:8080/employee/index http://localhost:8080/employee/
Результат
Давайте создадим новый метод действия action_show в нашем приложении для сотрудников .
<?php class Controller_Employee extends Controller { public function action_home() { echo "FuelPHP-Employee application!"; } public function action_index() { echo "This is the index method of employee controller"; } public function action_show() { echo "This is the show method of employee controller"; } }
Метод action_show может быть вызван с использованием следующего URL.
http://localhost:8080/home/show
Результат
before () Метод
Мы можем создать метод, прежде чем в нашем контроллере. Этот метод будет выполняться перед каждым вызовом метода action_ . Он не будет вызван, если окажется, что этот метод не существует. Этот метод помогает нам написать общие действия, такие как проверка входа в систему, выборка данных по умолчанию и т. Д.
Давайте создадим метод before и напечатаем простое текстовое сообщение.
public function before() { echo "This message comes from <em>before()</em> method</br>"; }
Индексная страница с до действия
Показать страницу с перед действием
метод after ()
Метод after () аналогичен методу before (), но выполняется после вызова метода action_ . Метод after () принимает ответ в качестве входных данных и возвращает объект ответа .
public function after($response) { if ( ! $response instanceof Response) { $response = \Response::forge($response, $this->response_status); } return $response; }
Если вход имеет значение NULL или не является объектом ответа, то создайте новый объект Response, используя метод подделки Response, и верните его. Мы подробно изучим класс Response в последующих главах.
Удлиняющие контроллеры
Мы можем расширить один контроллер от другого контроллера. Ниже приведен основной синтаксис.
class Controller_Employee extends Controller_Welcome { // controller methods }
Это поможет в обмене методами.
Создать контроллер
Топливо может генерировать контроллер с помощью команды «Масло». Ниже приводится синтаксис.
Синтаксис
oil g controller <controller-name>
пример
oil g controller sample
После выполнения вышеуказанной команды вы увидите следующий ответ.
Результат
Creating view: /path/to/project/fuel/app/views/template.php Creating view: /path/to/project/fuel/app/views/sample/index.php Creating controller: /path/to/project/fuel/app/classes/controller/sample.php
Тип контроллеров
FuelPHP предоставляет различные типы контроллеров для различных целей. Они заключаются в следующем —
- Базовый контроллер
- Контроллер шаблонов
- Контроллер отдыха
- Гибридный контроллер
Базовый контроллер
Контроллер является базовым контроллером для всех различных типов контроллеров, доступных в FuelPHP. Он предоставляет все основные функции, необходимые для обработки веб-запроса. Он поддерживает запрос, ответ, сессию и т. Д. Мы будем использовать его во всех примерах, если не указано иное.
Контроллер шаблонов
Template Controller является расширением базового контроллера. Имеется поддержка шаблонов, предопределенная до () и после (). По сути, его можно использовать для обертывания вашего представления в макете с верхним, нижним колонтитулом, боковой панелью и т. Д. Чтобы создать контроллер шаблона, нам нужно расширить класс Controller_Template . По умолчанию все методы класса, который расширяет Controller_Template, должны использовать шаблон.
Это определяется следующим образом.
class Controller_Employee extends Controller_Template { public function action_index() { // add methods } }
Мы обсудим больше о контроллере шаблона в главе Views.
Контроллер Отдыха
Контроллер отдыха является расширением базового контроллера. Он имеет предопределенную поддержку программирования REST API. Это позволит вам с легкостью создавать API.
Чтобы создать контроллер покоя, вам необходимо расширить класс Controller_Rest . Это определяется следующим образом.
class Controller_Employee extends Controller_Rest { public function action_index() { // add methods } }
Мы обсудим больше о контроллере отдыха в главе Ajax.
Гибридный контроллер
Гибридный контроллер выполняет функции контроллера REST и контроллера шаблона в одном базовом контроллере.