L'essentiel de CakePHP

Découvrir la notion de vue

Testez gratuitement nos 1298 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
La vue est une notion très utilisée sur le web et par de nombreux frameworks. CakePHP utilise lui aussi le modèle-vue-contrôleur.
07:32

Transcription

Dans les chapitres précédents, nous avons vu comment utiliser les modèles, comment utiliser les contrôleurs, et maintenant nous allons apprendre à utiliser les templating de CakePHP. Donc là, dans le pattern « Model-View-Controller », il ne nous reste plus vraiment que les vues à voir. Lorsqu'un utilisateur veut accéder à une page, une réponse lui est fournie par le biais des vues. Dans la plupart des cas, une réponse au format HTML est donnée par les vues, mais elles peuvent aussi être données sous format HTML, JSON, ou encore CSV ou PDF, par exemple. Donc, les fichiers sont appelés des « templates » dans CakePHP. D'où le CTP, qui veut dire CakePHP Template, donc l'extension de ces fichiers-là, c'est « .ctp ». Donc, les templates sont découpés de la manière suivante. Il y a déjà en premier, le layout, qui est la mise en page de l'application. Donc, les vues sont affichées à l'intérieur de cette mise en page. La mise en page, ça pourrait être par exemple, le background, la couleur de fond par exemple. Ensuite, vous avez les vues en elles-mêmes. Elles correspondent généralement au body de votre page. Donc, c'est le résultat d'une action. Ensuite, vous avez des éléments qui sont des blocs communs à plusieurs vues. Par exemple, c'est le cas d'un menu. Il y a aussi des assistants, qui sont des classes qui regroupent des fonctions communes à l'ensemble des vues. Vous avez donc quatre éléments importants dans les vues. Donc là, nous allons revoir comment passer des variables aux vues. Donc là, je reprends mon controller « ArticlesController ». Je vais commenter ce qu'il y avait au départ, ce que nous avions fait dans le chapitre précédent. Donc là, je vais « set », assigner une nouvelle variable et je vais donc l'afficher dans le « index.ctp » qui se trouve dans « Template Articles index.ctp ». Donc, j'enlève ce qu'il y a déjà dedans. Si je rafraîchis, j'ai bien « CakePHP est un super framework ». Donc ici, vous voyez que j'ai fait un « echo h ». Pourquoi « h » ? Parce que « h » est une fonction, c'est un raccourci d'une fonction qui permet de faire la fonction « htmlspecialchars » de PHP, donc elle convertit les caractères spéciaux en entités HTML. Ensuite, pour la mise en page, le layout, et l'habillage de la page, par défaut, c'est le layout qui se trouve dans « src Template Layout », « default.ctp », donc « src Template Layout default.ctp ». Donc ici, vous pouvez voir que vous avez déjà des petites choses. Si je vais voir le code source, j'ai bien ici des petites choses. En fait, ce sont ces choses-là qui sont affichées. Dans ce fichier, vous avez plusieurs choses intéressantes. Il y a d'abord un appel à la fonction « fetch », « $this-fetch », pour le title et aussi pour le content. En fait, cette fonction définit l'emplacement des contenus. Donc ici, vous avez « fetch('content') » qui définit l'emplacement des contenus. Ici, vous avez « fetch('title') » qui définit l'emplacement du titre, et pareil ici. Ensuite, vous avez ici d'autres choses, mais ça je les expliquerai dans des vidéos qui arriveront juste après. Concernant les layouts, il est possible d'utiliser plusieurs layouts, par exemple pour une page de connexion, ou encore des requêtes AJAX, vous n'avez pas besoin forcément de la même mise en page, ou même pas besoin de mise en page du tout pour de l'ajax par exemple. Dans le cas de l'ajax, c'est intéressant de ne pas avoir de balises header, de ne pas avoir de body. Vous pouvez par exemple juste printer du HTML, puisque vous souhaitez ensuite l'ajouter dans votre page, je ne sais où. Donc, pour ajouter un layout spécifique, il suffit d'aller dans le dossier « src Template Layout » et de créer un nouveau fichier. Donc là, c'est ce que je vais faire. C'est toujours un CTP, donc là, voilà je l'ai créé et ici, je vais copier le contenu du « default.ctp » et je vais juste par exemple changer le style du body. J'ajoute un « background-color » et du coup maintenant je vais préciser dans « ArticlesController », dans mon action « index », quel layout utiliser. Pour ça, en faisant « $this- viewBuilder-layout » et en précisant le nom du layout, donc sans le « .ctp ». Ici, ça va changer mon layout. Donc, par défaut ici, vous voyez bien que c'est le « background color black » qui est utilisé. Donc ici, on ne voit pas très bien, mais ici j'ai bien, « CakePHP est un super framework ». J'ai juste changé le layout. Donc ensuite, je vais vous parler un peu de la barre de débogage. Donc là, je vais enlever... ...le « background-color: black », puisque sinon on ne voit pas grand-chose. Voilà. Donc ensuite, vous pouvez regarder dans la barre de débogage qui se trouve ici. Vous pouvez voir en fait l'ensemble des variables qui sont passées à vos vues. Pour ça, il suffit d'aller dans « Variables ». Voilà, donc ça se charge et ici vous voyez que dans ma vue, j'ai ma variable CakePHP, avec la valeur « CakePHP est un super framework ». Donc, ça vous permet simplement de pouvoir debugger ce que vous avez comme variables dans votre vue, ce à quoi vous avez accès. Bien entendu, là je n'ai qu'une variable, vous pouvez bien sûr en avoir des centaines, voire des milliers, voire même plus. Comme nous l'avions vu précédemment, il faut surtout que votre vue porte vraiment le même nom que votre action. Si votre action, c'est « visualiser mon article », par exemple, alors votre fichier CTP sera « visualiser_mon_article ». Donc ça, c'est très important, puisque sinon vous allez avoir une erreur, et CakePHP ne comprendra pas. Afin d'éviter la redondance de codes dans vos templates, par exemple pour le menu, vous pouvez faire appel à des éléments. Les éléments se trouvent dans « src - Template - Element », donc « src - Template - Element ». Donc ici, je vais créer un menu par exemple .CTP, et je vais mettre un « <ul et <li ». Voilà, classique. Ensuite, je vais donc dans le layout par défaut, je vais ajouter cet élément. Pour ça, ici, je vais repréciser dans mon controller ici, que j'utilise la vue, le layout par défaut, comme ça je n'utiliserai plus mon layout, mais le layout « default.ctp ». Ici, juste au-dessus de mon content, je vais mettre mon élément « menu » avec « $this-element », et là, le nom de mon élément, donc « menu », ici, « Element menu ». Si je rafraîchis, j'ai bien mon menu qui s'affiche. Donc là, nous venons de voir comment créer une vue et comment ajouter certains éléments dans le layout et pouvoir faire le lien entre le layout et la vue. Dans le chapitre suivant, nous allons voir comment utiliser les helpers de CakePHP.

L'essentiel de CakePHP

Développez des applications web évolutives avec CakePHP, du simple blog au site e-commerce à fort trafic. Installez et configurez le framework, maîtrisez le routing, etc.

3h39 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
CakePHP CakePHP 3
Spécial abonnés
Date de parution :22 nov. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !