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 :

Tuto' : "Zend Framework : Premiers pas avec Zend_Application" [ZF 1.10]


Sujet :

MVC PHP

  1. #1
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut Tuto' : "Zend Framework : Premiers pas avec Zend_Application"
    Bonjour tout le monde.

    Alors voilou. J'ai fait hier ce tuto', mais uniquement la partie modulaire pour voir un peu comment cela fonctionnait.

    J'ai pu le finir, à la fin ça fonctionnait. Mais une question me tarode. Une fois l'architecture modulaire mise en place, j'ai lancé l'appli' et la première erreur à laquelle j'ai eu droit était qu'il trouvait bien le Bootstrap de mon module admin mais ne trouvait pas la classe Admin_Bootstrap. Bien que ma classe dans mon fichier modules/admin/Bootstrap.php s'appelait Admin_Bootstrap, j'ai été obligé de renommer le fichier de la même manière pour que l'application tourne. Or, dans l'arborescence donnée dans le tutoriel, le développeur avait bien nommé son fichier Bootstrap.php.

    Sauriez-vous d'où vient mon souci ?

    Merci d'avance.

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

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Salut, ce n'est pas précisé dans le tuto, mais tu dois declarer ton module dans le bootstrap principal:

    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
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
        protected function _initDefaultNamespace()
        {
            $this->bootstrap('frontcontroller');
            $fc = $this->getResource('frontcontroller');
            $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
     
    	new Zend_Application_Module_Autoloader(array(
                    'namespace' => '', // pas de namespace
                    'basePath'  => APPLICATION_PATH . $defaultModule,
                ));
            new Zend_Application_Module_Autoloader(array(
                    'namespace' => 'Admin', // pas de namespace
                    'basePath'  => APPLICATION_PATH . '/modules/admin',
                ));
        }
    }
    Les idiots sont ceux qui ne posent jamais de question!

  3. #3
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Salut.

    Merci de ta réponse. Je testerai ça ce soir en rentrant du taf et je te redirai ^^

  4. #4
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Bonsoir.

    J'ai trouvé d'où venait mon souci en fait... J'avais inversé les bootstrap xD Mon defaut était dans admin et mon admin dans default.
    Sinon ta solution fonctionne une fois que j'ai rectifié mon erreur, cependant même sans le code que tu m'as donné, cela tournait.

    J'avais ça dans mon Boostrap principal :
    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
    <?php
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
     
        //initilisation de l'autoloader pour une structure sans module
        protected function _initAutoload() {
            $moduleLoader = new Zend_Application_Module_Autoloader(array(
                'namespace' => '',
                'basePath'  => APPLICATION_PATH
                ));
     
            return $moduleLoader;
        }
     
        protected function _initDefaultNamespace() {
            $this->bootstrap('frontcontroller');
            $fc = $this->getResource('frontcontroller');
            $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
     
            new Zend_Application_Module_Autoloader(array(
                'namespace' => '', // pas de namespace
                'basePath' => APPLICATION_PATH . $defaultModule,
            ));
        }
    }
    Autre question, à partir du moment où j'ai des modules, la méthode _initAutoload() n'est plus utile ?

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

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Sinon ta solution fonctionne une fois que j'ai rectifié mon erreur, cependant même sans le code que tu m'as donné, cela tournait.
    Effectivement ça marche sans, mais j'ai souvenir d'avoir eu des problèmes de sérialisation et d'accès module.... résolus en forçant l'initialisation des modules dans le bootstrap.

    Autre question, à partir du moment où j'ai des modules, la méthode _initAutoload() n'est plus utile ?
    Effectivement la méthode _initAutoload ne sert a rien du moment que tu as précise dans application.ini que tu est en application modulaire.
    Les idiots sont ceux qui ne posent jamais de question!

  6. #6
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    ok super, je te remercie pour ton aide

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

Discussions similaires

  1. [Tuto] Premiers pas avec Havok
    Par stardeath dans le forum Havok
    Réponses: 1
    Dernier message: 02/08/2011, 23h04
  2. Premiers pas avec Zend_Application
    Par Invité dans le forum Zend Framework
    Réponses: 30
    Dernier message: 27/02/2010, 20h03
  3. Réponses: 1
    Dernier message: 10/02/2008, 14h56
  4. [debutant] premier pas avec le SDK directX9
    Par arno2004 dans le forum DirectX
    Réponses: 6
    Dernier message: 27/05/2004, 21h03

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