Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous et merci a ceux qui voudront bien essayer de m'aider.
J'ai le livre de Julien Pauli. Rien a faire je bloque sur les Layout.
J'assaye aussi son tuto mais impossible de faire fonctionner le Zend_Layout::startMvc.
http://julien-pauli.developpez.com/tuto … nd-layout/
J'obtiens une fatal erreur:
Fatal error: Call to a member function hasResource() on a non-object in D:\www\zend\application\controllers\ErrorController.php on line 49
Je precise que je suis un super debutant en Zend. (j'ai commence y'a qq jours)
J'ai l'impression que le Layout n'est pas chargé, pourtant je ne me suis pas gourré dans le Path... si??
Je ne comprend pas pourquoi le layout n'est pas chargé.
Ou alors j'ai pas super bien assimilé le MVC?
Merci bcp en out cas, mes codes ci dessous.
(COdes qui sont en fait un mix entre le bouquin et le tuto.)
4 fichiers:
bootstrap: index.php
$appPath = realpath(dirname(__FILE__) . '/../application'); // Utilisation de Zend_Loader require_once 'Zend/Loader/Autoloader.php'; // Chargement automatique des classes $loader = Zend_Loader_Autoloader::getInstance(); $loader->registerNamespace('App_'); // Appel du controleur frontal, // qui se charge de traiter la requette. Zend_Controller_Front::run($appPath . '/controllers'); // Zend Layout $layout = new Zend_Layout(array('setLayoutPath'=> $appPath . '/views/layouts'));
layout.phtml
<div class="header"> <?php echo $this->layout()->header ?> </div> <div class="main"> <div class="gauche"> <?php echo $this->layout()->gauche?> </div> <div class="content"> <?php echo $this->layout()->contenu?> </div> <div class="droite"> <?php echo $this->layout()->droite?> </div> </div> <div class="footer"> <?php echo $this->layout()->footer?> </div>
IndexController.php
<?php // La classe correspondant au conroller index // (Controller par default) class IndexController extends Zend_Controller_Action { // L'action Index public function indexAction() { $this->view->message = "test de message"; $this->view->message = "test de message"; $this->render(); $this->render('header', 'header'); $this->render('droite', 'droite'); $this->render('gauche', 'gauche'); $this->render('footer', 'footer'); } }
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
mon architecture est la suivante:
+ application +controllers IndexController.php +models +views +layouts layout.phtml +scripts index.phtml + html index.php
Dernière modification par 123pierre (27-03-2011 18:37:33)
Hors ligne
J'ai trouvé...
Dans le bootstrap il faut evidement appeler Zend_Layout avant Zend_Controller_Front::run($appPath . '/controllers');
Enfin en tout cas j'ai reussi a faire marcher un autre tuto comme ca...
Hors ligne
Pages: 1