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 :

Auto inclusion d'un formulaire [ZF 1.10]


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut Auto inclusion d'un formulaire
    Bonjour,

    J'ai un petit problème d'auto-inclusion dans la création de mon formulaire. Voici mon arborescence :

    + app
    + modules
    + models

    - modules > test
    - test > controllers, views, forms

    Je n'arrive pas à instancier une classe qui se trouve dans mon dossier forms.
    Comme j'ai un système de module, je dois peut être inclure le PATH moi-même ? Si oui pourriez vous me donner la méthode...

    Ma classe Form est celle-ci "justificatifForm":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    class Form_justificatifForm extends Zend_Form 
    { 
    ......
    }
    ?>
    Dans mon controller je souhaite l'appeler comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new Form_jusatificatifForm();
    Mais là il me gronde en disant ceci :
    Warning: include_once(Form\jusatificatifForm.php) [function.include-once]: failed to open stream: No such file or directory in Zend\ZendServer\share\ZendFramework\library\Zend\Loader.php on line 146

    Auriez-vous une idée ?

    merci d'avance

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Peut être en préfixant le nom de la classe par celui du module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class Test_Form_justificatifForm extends Zend_Form

  3. #3
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Bonjour !

    Alors j'ai tous essayé... Normalement cela marche correctement pourquoi cela ne fonctionne pas autoload...

    J'ai essayé ceci :
    new Modules_Portailcitoyen_Form_justificatifForm();

    J'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: include_once(Modules\Test\Form\justificatifForm.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader.php on line 146
     
    Warning: include_once() [function.include]: Failed opening 'Modules\Test\Form\justificatifForm.php' for inclusion (include_path='C:\Sources\grc\application/../library;C:\Sources\grc\application/models;.;C:\Program Files\Zend\ZendServer\bin\pear;C:\Program Files\Zend\ZendServer\share\ZendFramework\library') in C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader.php on line 146
     
    Fatal error: Class 'Modules_Portailcitoyen_Form_justificatifForm' not found in C:\Sources\grc\application\modules\portailcitoyen\controllers\JustifController.php on line 83
    Et j'essaye comme tu à dis :
    new Test_Form_justificatifForm();

    J'obtiens le même message quasiment... D'habitude cela fonctionne je comprend pas...


    Ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Test_Form_justificatifForm extends Zend_Form 
    { 
    etc...
    }

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Dans ce cas tu dois avoir un problème au niveau de la configuration de l'auto-chargement.

    Dans ton bootsrap, tu crées bien un objet Zend_Application_Module_Autoloader pour chaque module ?

  5. #5
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Alors j'ai bien un bootstrap pour chaque module mais dedans je ne vois pas d'instance de Zend_Application_Module_Autoloader.

    Ce n'est pas moi qui ai configuré zend donc c'est pour sa je patauge un peu.

    Tu me dit qu'il faut créer une instance de Zend_Application_Module_Autoloader alors ? Tu peux me donner un exemple j'ajoute dans le bootstrap et je test et je te tient au courant.

    Merci de ton aide en tous cas.

    EDIT : j'ai deux boostrap :
    Bootstrap.php
    bootstrapTest.php


    Dans Bootstrap.php j'ai ceci :
    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
     
        protected function _autoload()
        {
            require_once 'Zend/Version.php';
            $resu = Zend_Version::compareVersion('1.8');
            if (Zend_Version::compareVersion('1.8.0') == -1) {
                require_once 'Zend/Loader/Autoloader.php';
                $autoloader = Zend_Loader_Autoloader::getInstance();
                $autoloader->setFallbackAutoloader(true);
            } else {
                // @todo virer ceci quand on sera en ZF 1.10
                // on est en Z.F. <  1.8
                require_once 'Zend/Loader.php';
                Zend_Loader::registerAutoload();
            }
        }
    j'ai que cela comme autoload dans mes bootstrap.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par akrogames Voir le message
    Zend_Application_Module_Autoloader alors ? Tu peux me donner un exemple j'ajoute dans le bootstrap et je test et je te tient au courant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    new Zend_Application_Module_Autoloader(array(
        'namespace' => 'Test_',
        'basePath'  => dirname(__FILE__) . '/modules/test'
    ));

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/04/2010, 18h48
  2. Auto submit d'un formulaire
    Par Sekigawa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/02/2009, 11h14
  3. [Débutant] Remplissage auto. d'un sous-formulaire.
    Par Cyphen dans le forum Access
    Réponses: 11
    Dernier message: 20/06/2008, 15h07
  4. auto centrage dans un formulaire
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/03/2008, 22h21
  5. Réponses: 5
    Dernier message: 10/12/2007, 16h15

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