Suite au visionnage intensif des vidéos de Jo, j'ai décidé de me mettre à CakePHP vu que plus je dev de projets, plus ma logique de dev se rapproche d'un MVC. Je vais pas réinventer la roue et si cela me permet de développe plus vite et bien allons y!
Y'a un truc que j'ai du mal comprendre et j'espère que l'un d'entre vous saura m'aiguiller.
En dev from scratch je "découpe" mes templates, comme beaucoup d'entre vous je suppose. Avec CakePHP, si j'ai bien compris il y a 2 techniques.
L'une étant le "Elements" et l'autre le "View Blocks".
Je me suis arrêté sur la deuxième solution car si j'ai bien compris, dans un "View Blocks" on peut appeler directement ses méthodes alors que dans un "Element", on doit utiliser "requestAction" ce qui ne me convient pas du tout.
Alors voilà en pratique, je créé un top menu.
Dans app/View/Layouts, j'ai topmenu.ctp avec un basique code HTML pour tester dans un premier temps entouré de <?php $this->start('topmenu'); ?> et de <?php $this->end(); ?>
Ensuite dans mon default.ctp, j'appelle mon Block <?php echo $this->fetch('topmenu'); ?> ce qui ne fonctionne pas.
Après plusieurs relectures du CookBook, j'essaie d'ajouter en haut de ma page default.ctp <?php $this->extend('topmenu'); ?> en gardant l'appel <?php echo $this->fetch('topmenu'); ?> et là une jolie page blanche sans erreur.
Qu'est ce que j'ai loupé?
Merci beaucoup pour vos éclaircissements :)
Alors ta logique est bonne.
Cependant, ton menu va être un élément de ton layout.
Donc dans le dossier View/Layout/ tu mets ton fichier default.ctp. à l'emplacement de ton menu tu fais un $this->element('menu');
Puis dans ton dossier View/Elements/ tu mets ton fichier menu.ctp qui contient le menu.
Pour ma part je fonctionne comme ça depuis que je suis sur CakePHP et j'estime que c'est la merilleur solution. D'ailleurs je fais la même avec mon footer, mes asides...
Merci.
On m'a conseillé la même chose sur l'IRC.
En fait, c'est apparemment plus simple de travailler les blocs de la page en Elements. Et pour éviter ce que je voulais éviter, c'est à dire les requestAction, on m'a aussi montré une voie sur IRC: http://www.formation-cakephp.com/135/eviter-requestaction-layout
A mettre au goût du jour car l'exemple date un peu.
Merci de vos réponses en tout cas :)
C'est dingue mais plus j'avance, plus je dois tout repenser pour faire différemment, elle est là la grosse difficulté :S