Vues dans MVC en PHP
Ajoutons maintenant des vues à nos actions.
Selon les règles de notre framework, les vues
sont stockées dans le dossier /project/views/.
De plus, dans notre framework, une convention
est en vigueur : le nom du fichier de vue doit
correspondre au nom de l'action et être placé
dans un dossier portant le même nom que le contrôleur.
Par exemple, si nous avons un contrôleur PageController,
alors toutes ses vues doivent être stockées
dans le dossier /project/views/page/. Le
fichier de vue lui-même doit avoir l'extension
.php. Par exemple, si dans le contrôleur
PageController il y a une action act,
alors sa vue doit être placée dans
/project/views/page/act.php.
Pour assigner une vue à une action,
cette action doit appeler la méthode
render, en lui passant en paramètre le nom
de la vue. Le nom de la vue doit être composé
du nom du contrôleur avec une minuscule, après
lequel, via /, sera écrit le nom
de l'action.
La méthode render n'a pas besoin d'être implémentée
dans le contrôleur - elle est héritée de la classe
parente Core\Controller. De plus,
pour un fonctionnement correct, le résultat de la méthode
doit être retourné via return.
Ainsi, supposons que nous ayons un contrôleur Page
avec une action act. Assignons
à cette action une vue :
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act()
{
return $this->render('page/act');
}
}
?>
Créons maintenant le fichier avec le code HTML de notre vue :
<div>
ceci est la vue
de l'action act du contrôleur page
</div>
Effectuez les manipulations décrites, puis accédez à notre action via la barre d'adresse. Assurez-vous que le texte de la vue que vous avez créée apparaît dans le navigateur.