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 :

Chargement de contrôleur avec bootstrap [ZF 1.10]


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
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut Chargement de contrôleur avec bootstrap
    Bonjour,
    je suis en stage, je viens de débuter avec Zend Framework.
    Je l'ai téléchargé, installé et configuré en suivant quelques tutoriels du web et le livre 'les cahiers du programmeur '.

    voici mon architecture :

    Code x : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    reservationSalled-zf
    
        index.php
    
        application
    
            config
    
                Zend_Config_Ini.ini
    
            controllers
    
                LoginController.php
    
            models
    
            views
    
                scripts
    
                    connexion
    
                        login.phtml
    
                    errors
    
                        404.phtml
                        500.phtml
    
                    index
    
        library
    
            zend
    
        public
    
            css
            images
            js

    1) Voici le contenu de mon fichier bootstrap 'index.php' du repertoire 'reservationSalles-zf' :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    //on définit le chemin de notre application
    define ( 'APPLICATION_PATH', realpath ( dirname ( __FILE__ ) . '/./' ) );
     
    //utilisation de Zend_Loader_Autoloader
    require_once 'Zend/Loader/Autoloader.php';
     
     
    //appel de controleur
     
    try {
     
        //getInstance() est utilisé pour récupérer une instance du contrôleur frontal.
        $front = Zend_Controller_Front::getInstance();
     
        //le contrôleur frontal renvoie les exceptions qu'il a rencontrées
        //à l'objet de réponse, nous offrant une possibilité élégante de les gérer.
        $front->throwExceptions(true);
     
        //setControllerDirectory() est utilisé pour
        //chercher les fichiers de
        //classes de contrôleurs d'action.
        $front->setControllerDirectory(APPLICATION_PATH.'/application/controllers');
     
        //Dispatch lance notre application, fait le gros travail du contrôleur frontal.
        //Il peut facultativement prendre un objet de requête et/ou un objet de réponse,
        //permettant ainsi au développeur de fournir des objets personnalisés.
        $front->dispatch();
     
        //Traite les exceptions du contrôleur (généralement 404)
     
    } catch (Zend_Controller_Exception $e) {
     
        include APPLICATION_PATH.'/application/views/scripts/errors/404.phtml';
        //Traite les autres exceptions du contrôleur
     
    } catch (Exception $e) {
     
        include APPLICATION_PATH.'/application/views/scripts/errors/500.phtml';
     
    }
    2) voici le contenu du controlleur LoginController.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    class LoginController extends Zend_Controller_Action 
    {
        function init()
        {
            $this->view->title = "Connexion";
        }
    }
    je rencontre une erreur, je ne sais pas exactement ce que c'est mais je pense qu'il n'arrive pas à charger le controlleur que j'ai créé.
    il m'affiche le message d'erreur que j'ai dans 404.phtml.

    Merci de me répondre si vous avez une solution, je suis vraiment embêté.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Par défaut
    Bonjour,

    Je ne suis pas un expert de ZF car je débute également.
    Personnellement, j'ai pris l'option d'utiliser Zend_Application pour plus de simplicité.
    Pour ces deux raisons, je ne sais pas du tout si ton code est correct.

    Pour ton problème, n'oublie pas de te pencher sur l'URL rewriting. Voir les posts à ce sujet (déclaration dans le .htaccess et httpd.cong d'Apache).

    Enfin, voici un lien vers mon post pour mon problème, identique en apparence, mais peut être plus éloigné sur le fond.
    http://www.developpez.net/forums/d90...url-rewriting/

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut
    ok,
    merci quand même.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut Toujours pas de solution
    Je ne trouve pas de solution pour l'instant.
    j'ai déjà configuré le fichier .htaccess dans le répertoire racine de mon projet
    comme ça :

    # Règles de réécriture pour Zend Framework
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* index.php
    # Sécurité : Ne pas autoriser le parcours de répertoires
    Options -Indexes


    j'ai decommenté la ligne
    LoadModule rewrite_module modules/mod_rewrite.so

    et mis
    AllowOverride all

    dans le fichier httpd.conf de apache.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut [Basket] ta Solution de Zend Application ?
    salut Basket,
    Peux tu m'expliquer le principe de Zend Application que toi tu utilise, est ce qu'il s'installe avec la configuration toute faite et il suffira d'ajouter ses controlleurs models et vues?
    J'attends ta reponse por voir si je vais arreter avec la config manuel et opter pour ça, puisque j'ai passé beaucoup de temps dessus sans piste pour les erreurs.
    Merci pour ton aide.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    tu as donc le controller suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class LoginController extends Zend_Controller_Action
    {
    function init()
    {
    $this->view->title = "Connexion";
    }
    }
    Tu initialises une variable title pour l'ensemble de tes vues bien.

    Maintenant tu as besoin d'une méthode pour afficher une vue et donc tu as aussi besoin d'une vue, alors.

    Dans ton controller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class LoginController extends Zend_Controller_Action
    {
    function init()
    {
    $this->view->title = "Connexion";
    }
     
    public function indexAction(){
        $this->view->coucou = 'je suis le plus beau :) ';
    }
     
    }
    dans /views/scripts/login/index.phtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    echo $this->title."<br />";
    echo $this->coucou;

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut probleme de chargement de controlleur resolu
    Merci MaitrePylos,
    en fait j'avais tenté une autre alternative avec Zend_Tool, avec un bon tutoriel.
    Lui crée toute l'architecture de l'application et fait les fichiers (bootstrap et config), après tu n'as plus qu'à ajouter tes actions et vues. C'est ce qui m'a permis de savoir qu'il fallait ajouter une action/methode du meme nom que la vue après l'avoir initialiser dans la méthode init(), pour appeler la vue.
    Mais ta solution est bienvenue, merci.
    Voici le tutoriel que j'ai suivi pour Zend_Tool et ça marche !!

    http://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework.pdf

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/12/2005, 17h37
  2. [HTML] chargement du fichier avec la balise <embed>
    Par dinozor29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/10/2005, 12h11
  3. PB de chargement de combobox avec une requete
    Par bubu1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/03/2005, 16h14
  4. Réponses: 4
    Dernier message: 28/10/2004, 10h57
  5. chargement de texture avec la SDL
    Par Fry dans le forum OpenGL
    Réponses: 7
    Dernier message: 27/05/2004, 15h31

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