IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Layout et vue


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Layout et vue
    Bonjour,
    je découvre l'utilisation de zend framework, je vient de lire un livre de 600 pages dessus et maintenant je passe à la pratique.
    J'ai donc dans un 1er temps réussi à faire marcher les vues (pas bien compliqué il faut avouer) mais maintenant je n'arrive pas a utiliser correctement les layouts.
    J'ai cherche sur la doc officiel et sur différents forums et je ne voi pas l'erreur de mon code.

    Mon cotroller IndexController :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class IndexController extends Zend_Controller_Action 
    {
        function indexAction()
        {
        	$this->view->title = "Teste";
        	$this->view->pageTitre="tata";
        }
    }
    Ma vue correspondante index.phtml (qui fonctionne très bien sans l'utilisation des layouts):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h1><?php echo $this->escape($this->title); ?></h1>
    Mon script de layout layout.phtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <head>
    	<title><?php echo $this->escape($this->pageTitre); ?></title>
    </head>
    <body>
    	<?php echo $this->layout()->content; ?>
    </body>
    </html>
    Donc sur la page, le titre est correctement inscrit (j'en déduit que ma layout est bien appeler puisque ma variable pageTitre est bien transmise) par contre le code de la vue n'est pas affiché, ni le statique (les balsie <h1>), ni le dynamique (ma variable title).
    Donc je pense que mon script de vue n'est pas appellé ou que echo $this->layout()->content n'est pas correcte ?


    je vous fournit également mon bootstrap (très basique puisque je ne teste que les layouts) au cas ou le problème vienne de la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 1);
    date_default_timezone_set('Europe/Paris');
     
    // mise en place des répertoires et chargement des classes
    set_include_path('.'
        . PATH_SEPARATOR . './library'
        . PATH_SEPARATOR . './application/models/'
        . PATH_SEPARATOR . get_include_path());
     
     
    //Les 2 ligne ci-dessous permette l'autoload des classe php
    include "Zend/Loader.php";
    @Zend_Loader::registerAutoload();
     
     
    // setup controller
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->throwExceptions(true);
    $frontController->setControllerDirectory('../application/controllers');
     
    //définititon des layout
    $options = array(
        'layout'     => 'layout',
        'layoutPath' => '../application/views/layouts',
        'contentKey' => 'CONTENT'
    );
    $layout = Zend_Layout::startMvc($options);
     
    // run!
    $frontController->dispatch();

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Bonjour,

    Je pense que dans ton bootstrap tu dois initialiser le view renderer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Initialisation de la vue
    $view = new Zend_View();
     
    // Ajout de la vue au ViewRenderer
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
    $viewRenderer->setView($view);
    Quelle version de ZF utilises-tu? et quelle est la version de ZF utilisée dans ton bouquin?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Alors j'utilise la dernière version (ZendFramework-1.10.0) et dans mon livre ils utilisent la 1.0.3. Forcément il y a une grand différence.

    Je vient d'essayer en unitialisant la vue, mais sa ne fonctionne pas non plus

  4. #4
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Ah ben oui ça va marcher beaucoup moins bien forcément!

    Déjà, commence par regarder ceci :
    http://julien-pauli.developpez.com/t...d-application/

    ou même cela:

    http://helmi-dridi.developpez.com/tu...work/debutant/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Déja, merci pour la réponse.
    En ce qui concerne les tutoriels, je les aient relut et malgré cela je ne comprend pas pourquoi sa ne fonctionne pas.
    En ce qui concerne le 1er, je n'est pas envie de créer une classe pour le bootstrap car je ne teste que les fonctionnalitée pour le moment et le second tuto ne parle pas des layouts.

    j'ai également lut la doc officiel de la version 10 de Zend Framework et ils procèdent de la même façon.
    Finalement c'est le echo $this->layout()->content; qui me pose problème.
    est-ce que echo $this->layout()->content; permet de récupéré le résultat de la vue automatiquement ou faut-il le déclarer à un moment ou un autre?

  6. #6
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Et tu as comparé ton code au deuxième tuto même si celui-ci ne parle pas de layout?

    Tu devrais au moins le reprendre car celui-ci te fait débuter un application sans classe de bootstrap adapté à une version récente de ZF.

    Zend_Loader::registerAutoload() n'est plus utilisé depuis la version 1.9

    sinon essaie en virant l'option
    'contentKey' => 'CONTENT'

    normalement Zend_Layout récupère automatiquement la vue lorsque tu l'initialise

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème vue, css, js, layout
    Par kiradeus dans le forum Zend Framework
    Réponses: 2
    Dernier message: 09/08/2012, 10h38
  2. Appeler un helper de vue dans un layout
    Par __fabrice dans le forum MVC
    Réponses: 7
    Dernier message: 13/01/2012, 11h56
  3. [ZF 1.11] Problème de vue, layout, css
    Par KiMbOoO dans le forum Zend Framework
    Réponses: 4
    Dernier message: 25/07/2011, 23h02
  4. [CakePHP] vue et layout
    Par adel25 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 07/01/2011, 17h31
  5. Layout global pour les vues
    Par Antoine_935 dans le forum Django
    Réponses: 2
    Dernier message: 31/08/2009, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo