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