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

Autres composants PHP Discussion :

[0.9.2]Problème avec Zend_View


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Par défaut [0.9.2]Problème avec Zend_View
    Bonjour,

    j'essaie d'apprendre à utiliser le Zend Framework avec Zend-framework-getstarted. tout fonctionnement correctement jusqu'au Zend_View.

    Mon problème survient lorsque je met en place la vue avec :

    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
    <?php
    class IndexController extends Zend_Controller_Action
    {
        function init()
        {
            $this->initView();
        }
        function indexAction()
        {
            $this->view->title = "Mes albums";
            $this->render();
        }
        function ajouterAction()
        {
            $this->view->title = "Ajouter un nouvel album";
            $this->render();
        }
        function modifierAction()
        {
            $this->view->title = "Modifier un album";
            $this->render();
        }
        function supprimerAction()
        {
            $this->view->title = "Supprimer un album";
            $this->render();
        }
    }

    Lors de l'exécution j'obtiens le message d'erreur suivant, on dirait que le framework ne trouve pas mes templates :

    Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'index/index.phtml' not found in path' in /var/www/zftuto/library/Zend/View/Abstract.php:807 Stack trace:
    #0 /var/www/zftuto/library/Zend/View/Abstract.php(718): Zend_View_Abstract->_script('index/index.pht...')
    #1 /var/www/zftuto/library/Zend/Controller/Action.php(203): Zend_View_Abstract->render('index/index.pht...')
    #2 /var/www/zftuto/application/controllers/IndexController.php(11): Zend_Controller_Action->render()
    #3 /var/www/zftuto/library/Zend/Controller/Action.php(501): IndexController->indexAction()
    #4 /var/www/zftuto/library/Zend/Controller/Dispatcher/Standard.php(214): Zend_Controller_Action->dispatch('indexAction')
    #5 /var/www/zftuto/library/Zend/Controller/Front.php(754): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #6 /var/www/zftuto/index.php(14): Zend_Controller_Front->dispatch()
    #7 {main} thrown in /var/www/zftuto/library/Zend/View/Abstract.php on line 807

    l'arboressence des répertoires est celle recommandée par le répertoire

    le serveur tourne sous Ubuntu 6.10
    avec Apache 2 et PHP 5.1.6


    Merci d'avance pour vos réponse

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Dans ton index.php tu dois avoir un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    require '../conf/php.conf.php';
    require '../conf/db.conf.php';
    require_once 'Zend.php';
     
    Zend::loadClass('Zend_Controller_Front');
     
    $controller=Zend_Controller_Front::getInstance();
    $controller->setControllerDirectory('monadresse/controllers');
     
    Zend::loadClass('Zend_View');
    $view1 = new Zend_View;
    $view1->setScriptPath('monadresse/views/base');
    Zend::register('maview',$view1);
    Ensuite, dans ta page controller, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class IndexController extends Zend_Controller_Action
    {
        function indexAction()
        {
       	Zend::registry('maview')->titre = "Mes albums";
    	echo Zend::registry('maview')->render('mapage.php');
        }
    }
    Et dans ta page, mapage.php, tu utilise $this->titre pour récupérer "Mes albums".

    J'espère que c'est un peu plus clair pour toi.
    Sinon n'hésite pas.

  3. #3
    Membre averti

    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Par défaut
    Merci de ta réponse.

    Le tutorial parle d'une méthode où il n'est pas obligatoire de déclarer la vue pour chaque action.
    Le framework serait capable d'appeler directement la bonne vue en fonction du nom de l'action ceci biensur en veillant à une bonne arboressence de l'appli.

    La vue est initialisée grace à la méthode initView() qui est appelée dans la méthode init() du controleur.
    Le framework appel ensuite le template, qui doit être dans le répertoire application/views/scripts, correspondant a l'action demandée.

    Par exemple pour l'action ajouter de mon controlleur devrait appeler la page :
    application/views/scripts/index/ajouter.phtml


    Je vais essayé ta méthode pour vérifier le fonctinnement de mes scripts.
    Par contre il semble que la classe Zend est deprecated depuis la version 0.9.0.

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Autre exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class IndexController extends Zend_Controller_Action
    {
    	function init() {
    		session_start();
    		$view = Zend::registry('view');
    }
    function indexAction() {
    		$view = Zend::registry('view');
    		$view->probleme ="";
    		$this->_response->setBody($view->render('montpl.tpl.php'));
    	}
    }
    voila. bon dev'

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Par défaut
    [tonChemin]/index/ajouter

    En fait, je ne sais pas pourquoi, mais comme tu es dans IndexController et que tes fichiers de vues sont placées dans views/scripts/index . Tu es obligé de lui rajouter index pour lui dire où sont situés tes fichiers vues sinon essayes de les placer à la racine de view/scripts là il devrait les trouver facilement mais ça ne sera pas très propres

  6. #6
    Membre averti

    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Par défaut
    j'ai essayé de déplacer mon répertoire index un peu partout dans l'arborescence de l'application en spécifiant le chemin ou non


    Mais rien faire je n'arrive pas à trouver dans quel répertoire le framework ca chercher les fichiers à inclure

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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