FuelPHP - Vues

Viewest la couche de présentation de l'application MVC. Il sépare la logique d'application de la logique de présentation. Lorsqu'un contrôleur a besoin de générer du HTML, du CSS ou tout autre contenu, il transfère la tâche au moteur de visualisation.

FuelPHP fournit une classe simple et flexible, View avec toutes les fonctionnalités nécessaires d'un moteur de visualisation. La classe View prend en charge le rendu du fichier de vue. Afficher le fichier est une page HTML avec des instructions PHP intégrées. Les variables du fichier de vue peuvent être définies en utilisant la classe View comme tableau PHP et référencées dans le fichier de vue en utilisant la clé du tableau. Voyons quelques-unes des méthodes importantes de la classe View.

la forge

  • Purpose - Crée un nouvel objet View

  • Parameter - Voici les paramètres

    • $file - Chemin du fichier de vue par rapport au dossier de vues, fuel / app / views

    • $data - Tableau de valeurs

    • $filter - Définit l'encodage automatique, par défaut les paramètres dans le fichier de configuration principal

  • Returns - Instance de la vue

Par exemple,

$view = View::forge ('path/to/view', array( 
   'title' => "Show employee, 
   'employees' => $employees, 
));

auto_filter

  • Purpose - Définissez s'il faut encoder les données ou non

  • Parameter - Voici le paramètre

    • $filter - vrai / faux

  • Returns - Objet de la vue actuelle

Par exemple,

$view->auto_filter(); 
$view = $view->auto_filter(false);

set_filename

  • Purpose - Permet de définir ou de modifier le fichier de vue.

  • Parameter - Voici le paramètre -

    • $file - Chemin d'accès au fichier par rapport au dossier des vues, carburant / application / vues

  • Returns - Objet Vue actuelle

Par exemple,

$view = new View();
$view>set_filename('path/to/view');

ensemble

  • Purpose - Définissez la valeur d'une ou plusieurs variables

  • Parameter - Voici les paramètres

    • $key - Nom de variable ou tableau de valeurs

    • $value - Valeur / null

    • $filter - Paramètre d'encodage, vrai / faux

  • Returns - Objet de la vue actuelle

Par exemple,

$view = new View(); 
$view->set(array('name' => 'Jon'));

set_global

set_global est similaire à set, sauf qu'il s'applique à toutes les vues et que les variables sont accessibles par toutes les vues. C'est une méthode statique.

View::set_global('name', 'Jon', false);

set_safe

  • Purpose - Réglez la valeur d'une ou plusieurs variables avec le codage sécurisé activé.

  • Parameter - Voici les paramètres -

    • $key - Nom de variable ou tableau de valeurs

    • $value - Valeur / null

  • Returns - Objet de la vue actuelle

Par exemple,

$view = new View(); 
$view->set_safe(array('name' => 'Jon'), null);

avoir

  • Purpose - Obtenez la valeur d'une ou plusieurs variables

  • Parameter - Voici les paramètres

    • $key - Nom de variable

    • $default - Valeur par défaut à renvoyer si la clé n'est pas trouvée

  • Returns - Valeur de la clé d'entrée

Par exemple,

$view = new View(); 
$name = $view>get('name');  // name = 'Jon'

rendre

  • Purpose - Rendre les fichiers de vue en chaîne en les fusionnant avec les variables locales et globales

  • Parameter - Voici les paramètres -

    • $file - Le nom du fichier de vue

  • Returns - Le fichier de vue rendu sous forme de chaîne

Par exemple,

$html = View::forge()->render('/path/to/view');

Créer une vue

Pour comprendre les vues, modifions la méthode d'action, action_show du contrôleur, Controller_Employee .

employé.php

<?php  
   class Controller_Employee extends Controller { 
      public function action_show() {
         return View::forge('employee/show'); 
      } 
   }

Créez maintenant un employé de dossier dans le répertoire de vues, situé dans fuel / app / views . Ensuite, créez un fichier show.php dans le dossier des employés et ajoutez le code suivant.

show.php

<h3> My first view </h3>

Maintenant, demandez l'url http: // localhost: 8080 / employee / show et cela produira le résultat suivant.

Passer des données à afficher

Nous pouvons transmettre des données aux vues en utilisant les méthodes View comme indiqué précédemment. Voici un exemple simple.

employé.php

class Controller_Employee extends Controller { 
   public function action_show() { 
      $data = array(); //stores variables going to views 
      $data['name'] = ‘Jon’; 
      $data[‘job’] = ‘Designer’;  
      
      //assign the view to browser output 
      return View::forge('employee/show', $data); 
   } 
}

Maintenant, ajoutez les modifications dans le view fichier.

show.php

<html> 
   <body> 
      Hello, <?php echo $name; ?>. 
      Your job is, <?php echo $job; ?>. 
   </body> 
</html>

Après avoir demandé l'URL, il affichera le nom et le travail comme suit -

Afficher le filtre

Les vues utilisent le codage de sortie pour transmettre tout ce que vous voulez. Si vous souhaitez transmettre des données non filtrées, nous pouvons utiliser la méthode set.

employé.php

class Controller_Employee extends Controller { 
   public function action_show() { 
      $view = \View::forge('employee/show'); 
      $view->set('name', 'Jon', true); 
      $view->set('job', '<em>Designer</em>', false); 
      return $view; 
   } 
}

Après avoir demandé l'URL, il affichera les détails du travail dans le style d'accentuation, comme suit.

Vues imbriquées

FuelPHP prend en charge les vues imbriquées. Dans les vues imbriquées, une vue peut contenir une ou plusieurs vues. Pour définir les vues dans une autre vue, nous pouvons utiliser la méthode de rendu comme suit.

employé.php

class Controller_Employee extends Controller { 
   public function action_nestedview() { 
      
      //assign variables 
      $data = array(); 
      $data['title'] = 'Home';  
      $data['name'] = 'Jon'; 
      $data['job'] = 'Designer';  
      $views = array(); 
      $views['head'] = View::forge('head', $data)->render(); 
      $views['content'] = View::forge('employee/show', $data)->render();  
      return View::forge('layout', $views, false)->render(); 
   } 
}

fuel / app / views / layout.php

<html> 
   <head> 
      <?php echo $head; ?> 
   </head> 
   
   <body> 
      <?php echo $content; ?> 
   </body> 
</html>

carburant / app / vues / head.php

<title>
   <?php echo $title; ?>
</title>

carburant / app / vues / employé / show.php

Hello, <?php echo $name; ?>. 
Your job is, <?php echo $job; ?>.

Après avoir demandé l'URL, http: // localhost: 8080 / employee / nestedview et vérifié la vue source, il donne le code suivant.

<html> 
   <head> 
      <title>Home</title> 
   </head> 
   
   <body> 
      Hello, Jon. 
      Your job is, Designer. 
   </body> 
</html>

Contrôleur de modèle

FuelPHP fournit un contrôleur, Controller_Template avec un concept de disposition intégré. Le concept de mise en page est fait en utilisantbefore() et after()méthode du contrôleur. Pour utiliser le contrôleur de modèle, nous devons étendre le contrôleur en utilisant Controller_Template au lieu de Controller. Lors de l'utilisation de la méthode after () / before (), nous devons appeler parent :: before et parent :: after, sinon, le modèle se brise.

<?php 
   class Controller_Test extends Controller_Template { 
      public function before() { 
         parent::before(); 
         // do stuff 
      } 
        
      public function after($response) { 
         $response = parent::after($response); 
         
         // do stuff 
         return $response; 
      } 
   }

template.php

Il s'agit d'un fichier modèle par défaut dans Fuel. Le fichier modèle est utilisé pour appeler des partiels JS, CSS, HTML et des vues partielles. Il est situé aufuel/app/views/. Les modèles sont utilisés pour envelopper votre vue dans une mise en page avec un en-tête, un pied de page, une barre latérale, etc. Nous pouvons changer le modèle par défaut en utilisant la variable $ template dans la méthode d'action comme suit.

carburant / application / classes / contrôleur / test.php

<?php  
   class Controller_Test extends Controller_Template { 
      public $template = 'template_test'; 
      public function action_index() { 
         $this->template->title = 'Example Page'; 
         $this->template->content = View::forge('test/index'); 
      } 
   }

fuel / app / views / template_test.php

<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title><?php echo $title; ?></title> 
      <?php echo Asset::css('bootstrap.css'); ?> 
   </head> 

   <body> 
      <div> 
         <?php echo $content; ?>
      </div> 
   </body> 
</html>

carburant / app / vues / test / index.php

<h3>My Test page</h3>

Maintenant, demandez l'URL http: // localhost: 8080 / test et cela produira le résultat suivant.

Résultat

<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title>Example Page</title> 
      <link type = "text/css" rel = "stylesheet" 
         href = "http://localhost:8080/assets/css/bootstrap.css?1464964766" />
   </head> 
   
   <body> 
      <div> 
         <h3>My Test page</h3> 
      </div> 
   </body> 
</html>

Générer une page de vue

Vous pouvez générer une page d'affichage à l'aide de la console Fuel's Oil. Voici la syntaxe de base.

oil g controller <controller-name> <page1> <page2> ..

Pour générer un contrôleur d'administration avec des pages d'accueil et de connexion, utilisez la commande suivante.

oil g controller admin home login

Résultat

Creating view: /path/to/app/fuel/app/views/admin/home.php 
Creating view: /path/to/app/fuel/app/views/admin/login.php 
Creating controller: /path/to/app/fuel/app/classes/controller/admin.php