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

Zend Framework PHP Discussion :

Autoloader : Ne parvient pas a inclure les bon fichier?


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 30
    Par défaut Autoloader : Ne parvient pas a inclure les bon fichier?
    Bonjour!

    Je viens demander un coup de main, car j'ai actuellement un petit problème en ce qui concerne l'autoload de Zend... J'ai dans mon Bootstrap.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      protected function _initAutoload()
      {
        $autoloader = new Zend_Application_Module_Autoloader(array(
          'namespace' => 'Default_',
          'basePath' => dirname(__FILE__),
        ));
        return $autoloader;
      }
    Du coups je ne comprends pas pourquoi quand je veux appeler la classe Default_Validator_Login il me sort une erreur Fatal error: Class 'Default_Validator_Login' not found in /home/web/.ok./zend/application/forms/User/Register.php on line 16 ... le namespace default est bien pris en conte car j'appelle Default_Validator_Login depuis Default_Form_User_Register ...

    Un peut d'aide n'est pas de refus.
    D'avance, Merci

    ps : ls -l dans application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    drwxr-xr-x 2 web www-data 4096 12 juil. 22:22 validator
    lrwxrwxrwx 1 web www-data    9 12 juil. 22:25 Validator -> validator
    lrwxrwxrwx 1 web www-data    9 12 juil. 22:25 validators -> validator
    lrwxrwxrwx 1 web www-data    9 12 juil. 22:25 Validators -> validator
    et un tree :
    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
    +-- Bootstrap.php
    +-- configs
    ¦** +-- application.ini
    +-- controllers
    ¦** +-- ErrorController.php
    ¦** +-- IndexController.php
    ¦** +-- LangController.php
    ¦** +-- UserController.php
    +-- forms
    ¦** +-- Decorators.php
    ¦** +-- User
    ¦**     +-- Register.php
    +-- lang
    ¦** +-- translation.tmx.xml
    +-- layouts
    ¦** +-- scripts
    ¦**     +-- layout.phtml
    +-- models
    ¦** +-- DBTable
    ¦** ¦** +-- Users.php
    ¦** +-- ParentMapper.php
    ¦** +-- ParentModel.php
    ¦** +-- UsersMapper.php
    ¦** +-- Users.php
    +-- validator
    ¦** +-- Login.php
    +-- Validator -> validator
    +-- validators -> validator
    +-- Validators -> validator
    +-- views
        +-- helpers
        +-- scripts
            +-- error
            ¦** +-- error.phtml
            +-- index
            ¦** +-- index.phtml
            +-- user
                +-- register.phtml
                +-- registred.phtml

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Bonjour,

    Je pense que le problème vient du fait que tu fais appel à une ressource qui n'est pas définie par le Module Autoloader.

    Si tu veux une liste des éléments prédéfinis par ce loader, il suffit de regarder le source de la classe /Zend/Application/Module/Autoloader.php :

    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
            $this->addResourceTypes(array(
                'dbtable' => array(
                    'namespace' => 'Model_DbTable',
                    'path'      => 'models/DbTable',
                ),
                'mappers' => array(
                    'namespace' => 'Model_Mapper',
                    'path'      => 'models/mappers',
                ),
                'form'    => array(
                    'namespace' => 'Form',
                    'path'      => 'forms',
                ),
                'model'   => array(
                    'namespace' => 'Model',
                    'path'      => 'models',
                ),
                'plugin'  => array(
                    'namespace' => 'Plugin',
                    'path'      => 'plugins',
                ),
                'service' => array(
                    'namespace' => 'Service',
                    'path'      => 'services',
                ),
                'viewhelper' => array(
                    'namespace' => 'View_Helper',
                    'path'      => 'views/helpers',
                ),
                'viewfilter' => array(
                    'namespace' => 'View_Filter',
                    'path'      => 'views/filters',
                ),
            ));
    C'est un excellent reminder quand on ne sait plus trop comment sont "mappés" les chemins. Comme tu le constate, forms est déclaré, mais pas validator.

    Rajoute ceci dans ton bootstrap::_initAutoload() avant le return et ça devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $autoloader->addResourceType('validator', 'validator', 'Validator');
    Par contre c'est normal que tu ais autant de liens de ton dossier validator ? J'imagine que c'était pour des tests, mais je serais toi je ne garderais que le dossier original histoire d'être sûr de bien maîtriser comment sont chargées les classes.

Discussions similaires

  1. Macro : Chercher les bons fichiers de liaisons.
    Par PAULOM dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/06/2009, 15h44
  2. Réponses: 1
    Dernier message: 17/04/2007, 22h03
  3. Réponses: 2
    Dernier message: 07/11/2006, 22h42
  4. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

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