FuelPHP - Contrôleurs

Controllerssont responsables du traitement de chaque demande qui entre dans l'application FuelPHP. Selon FuelPHP, les contrôleurs sont situés àfuel/app/classes/controller/. Créons d'abord un contrôleur d'employé.

employé.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éthodes du contrôleur

Les contrôleurs traitent une demande Web en utilisant l'un de ses action_ méthodes. Nous pouvons créer autant de méthodes action_ en fonction des besoins de l'application. La méthode action_ par défaut est action_index . La méthode action_index peut être appelée par l'une des URL suivantes.

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

Résultat

Créons un nouveau actionmethod, action_show dans notreemployee application.

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

La méthode action_show peut être appelée à l'aide de l'URL suivante.

http://localhost:8080/home/show

Résultat

before (), méthode

Nous pouvons créer une méthode, beforedans notre contrôleur. Cette méthode sera exécutée avant chaque appel de méthode action_ . Elle ne sera pas appelée si cette méthode s'avère ne pas exister. Cette méthode nous aide à écrire des actions courantes telles que la vérification de connexion, la récupération des données par défaut, etc.

Créons une méthode avant et imprimons un simple message texte.

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

Page d'index avec action avant

Afficher la page avec l'action avant

after (), méthode

after() la méthode est similaire à before()mais exécutée après l' appel de la méthode action_ . after () prend la réponse comme entrée et renvoie l' objet de réponse .

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

Si l'entrée est NULL ou non l' objet de réponse, puis créez une nouvelle réponse objet en utilisant la méthode de forge de réponse et de le retourner. Nous apprendrons la classe Response en détail dans les chapitres suivants.

Extension des contrôleurs

Nous pouvons étendre un contrôleur à partir d'un autre contrôleur. Voici la syntaxe de base.

class Controller_Employee extends Controller_Welcome { 
   // controller methods 
}

Cela aidera à partager les méthodes.

Générer un contrôleur

Le carburant a la possibilité de générer un contrôleur à l'aide de la commande Oil. Voici la syntaxe.

Syntaxe

oil g controller <controller-name>

Exemple

oil g controller sample

Après avoir exécuté la commande ci-dessus, vous verrez la réponse suivante.

Résultat

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

Type de contrôleurs

FuelPHP fournit différents types de contrôleurs à des fins diverses. Ils sont les suivants -

  • Contrôleur de base
  • Contrôleur de modèle
  • Contrôleur de repos
  • Contrôleur hybride

Contrôleur de base

Le contrôleur est le contrôleur de base pour tous les différents types de contrôleurs disponibles dans FuelPHP. Il fournit toutes les fonctionnalités de base nécessaires pour traiter une requête Web. Il prend en charge les requêtes, les réponses, les sessions, etc. Nous les utiliserons dans tous les exemples, sauf indication contraire.

Contrôleur de modèle

Un contrôleur de modèle est une extension du contrôleur de base. Il prend en charge les modèles, prédéfinis avant () et après (). Fondamentalement, il peut être utilisé pour envelopper votre vue dans une mise en page avec un en-tête, un pied de page, une barre latérale, etc. Pour créer un contrôleur de modèle, nous devons étendre la classe Controller_Template . Par défaut, toutes les méthodes d'une classe qui étend Controller_Template doivent utiliser le modèle.

Il est défini comme suit.

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

Nous discuterons plus en détail du contrôleur de modèle dans le chapitre Vues.

Contrôleur de repos

Un contrôleur de repos est une extension du contrôleur de base. Il a un support prédéfini pour la programmation de l'API REST. Cela vous permettra de créer facilement des API.

Pour créer un contrôleur de repos, vous devez étendre la classe Controller_Rest . Il est défini comme suit.

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

Nous discuterons plus en détail du contrôleur de repos dans le chapitre Ajax.

Contrôleur hybride

Le contrôleur hybride exécute les fonctionnalités du contrôleur REST et du contrôleur de modèle dans un seul contrôleur de base.