FuelPHP - controladores

Controllerssão responsáveis ​​por lidar com cada solicitação que chega ao aplicativo FuelPHP. De acordo com o FuelPHP, os controladores estão localizados emfuel/app/classes/controller/. Vamos primeiro criar um controlador de funcionário.

funcionário.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"; 
      } 
   }

Métodos de controle

Os controladores processam uma solicitação da web usando um de seus action_ métodos. Podemos criar tantos métodos action_ dependendo dos requisitos do aplicativo. O método action_ padrão é action_index . O método action_index pode ser chamado por qualquer um dos seguintes URLs.

http://localhost:8080/employee/index
http://localhost:8080/employee/

Resultado

Vamos criar um novo actionmétodo, action_show em nossoemployee inscrição.

<?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"; 
      } 
   }

O método action_show pode ser chamado usando a seguinte URL.

http://localhost:8080/home/show

Resultado

Método before ()

Podemos criar um método, beforeem nosso controlador. Este método será executado antes de cada invocação do método action_ . Ele não será chamado se esse método não existir. Este método nos ajuda a escrever ações comuns, como verificação de login, busca de dados padrão, etc.

Vamos criar um método before e imprimir uma mensagem de texto simples.

public function before() { 
   echo "This message comes from <em>before()</em> method</br>"; 
}

Página de índice com antes da ação

Mostrar página antes da ação

Método after ()

after() método é semelhante a before()método, mas executado após o método action_ ser chamado. O método after () recebe a resposta como uma entrada e retorna o objeto de resposta .

public function after($response) { 
   if ( ! $response instanceof Response) { 
      $response = \Response::forge($response, $this->response_status); 
   } 
   return $response; 
}

Se a entrada for objeto NULL ou não resposta, em seguida, criar uma nova Response objeto usando o método de forja de Resposta e devolvê-lo. Aprenderemos a classe Response em detalhes nos capítulos subsequentes.

Estendendo controladores

Podemos estender um controlador de outro controlador. A seguir está a sintaxe básica.

class Controller_Employee extends Controller_Welcome { 
   // controller methods 
}

Isso ajudará no compartilhamento de métodos.

Gerar controlador

O combustível tem a opção de gerar controlador usando o comando Óleo. A seguir está a sintaxe.

Sintaxe

oil g controller <controller-name>

Exemplo

oil g controller sample

Depois de executar o comando acima, você verá a seguinte resposta.

Resultado

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

Tipo de controladores

O FuelPHP fornece diferentes tipos de controlador para diversos fins. Eles são os seguintes -

  • Controlador de base
  • Controlador de modelo
  • Controlador de descanso
  • Controlador híbrido

Controlador de base

O controlador é o controlador básico para todos os diferentes tipos de controladores disponíveis no FuelPHP. Ele fornece todas as funcionalidades básicas necessárias para processar uma solicitação da web. Ele suporta Solicitação, Resposta, Sessão, etc. Iremos usá-lo em todos os exemplos, a menos que especificado de outra forma.

Controlador de modelo

Um controlador de modelo é uma extensão do controlador de base. Possui suporte a template, métodos pré-definidos antes () e depois (). Basicamente, ele pode ser usado para envolver sua visão em um layout com um cabeçalho, rodapé, barra lateral, etc. Para criar um controlador de modelo, precisamos estender a classe Controller_Template . Por padrão, todos os métodos de uma classe que estende Controller_Template precisam usar o modelo.

É definido como segue.

class Controller_Employee extends Controller_Template { 
   public function action_index() { 
      // add methods 
   } 
}

Discutiremos mais sobre o controlador de template no capítulo Views.

Controlador de descanso

Um controlador de descanso é uma extensão do controlador de base. Possui suporte pré-definido para programação de API REST. Isso permitirá que você crie APIs com facilidade.

Para criar o controlador de descanso, você precisa estender a classe Controller_Rest . É definido como segue.

class Controller_Employee extends Controller_Rest { 
   public function action_index() { 
      // add methods 
   } 
}

Discutiremos mais sobre o controlador de descanso no capítulo Ajax.

Controlador Híbrido

O controlador híbrido executa a funcionalidade do controlador REST e do controlador de modelo em um único controlador de base.