Учебники

FuelPHP — Контроллеры

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