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 :

Zend_Loader_Autoloader ne trouve pas mes classes [ZF 1.8]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Zend_Loader_Autoloader ne trouve pas mes classes
    Bonjour, je reviens avec un nouveau problème. J'ai parcouru le forum pour comprendre le fonctionnement de ce nouveau composant et j'ai lu et relu l'article de J.Pauli mais je n'arrive pas à faire trouver mes classes par le framework.
    Donc si un gentil développeur plus expérimenté que moi pouvait me sortir cette épine du pied. J'ai commencé avec la version 1.7 mais je tiens à rester à jour et donc je suis passé au 1.8.4.

    Mon fichier index.php remplace donc le composant précédemment utilisé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include "Zend/Loader/Autoloader.php";
    $autoload = Zend_Loader_Autoloader::getInstance();
    Comme je n'attribue pas de namespace spécifique je suis censé récupéré ceux par défaut, et j'ai organisé mes dossiers de tel manière à pouvoir m'en contenter.

    J'ai donc préfixé tous mes formulaires de la sorte

    class Form_GoogleForm extends Zend_Form
    {
    Et je les rangés dans le dossier application/forms

    Dans mon contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class IndexController extends Zend_Controller_Action 
    {
     
        function indexAction()
        {
    		$this->view->title = ""; 
    		$form = new GoogleForm();
    		$form->setAction('http://www.google.com/custom')
    			  ->setMethod('get');
            $this->view->form = $form;
     
    	}
    }
    ET LE RESULTAT EST :
    Fatal error: Class 'GoogleForm' not found
    Et là je ne vois plus bien clair ...

    Merci à vous !

  2. #2
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Bonjour,

    vous avez préfixé votre classe avec Form_ donc,ta classe doit nommé GoogleForm.php est être mise dans le dossier form ce qui n'est pas votre cas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Euh
    Ben d'après ce que j'ai vu de la classe Zend_Application_Module_Autoloader

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public function initDefaultResourceTypes()
        {
            $basePath = $this->getBasePath();
            $this->addResourceTypes(array(
                'dbtable' => array(
                    'namespace' => 'Model_DbTable',
                    'path'      => 'models/DbTable',
                ),
                'form'    => array(
                    'namespace' => 'Form',
                    'path'      => 'forms',
                ), ...

    le dossier doit bien s'appeler forms et ma classe s'appelle bien GoogleForm.php

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Je dois faire un confusion entre les objets Zend_Loader_Autoloader et Zend_Loader_Autoloader_Resource mais je n'y vois pas plus clair le nez dans la doc.
    Est il obligatoire d'avoir un NameSpace ?

  5. #5
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Avec l'autoloader, le nommage des fichiers est très important. Ton fichier doit s'appeller "google-form.php" et ta classe "googleForm". La majuscule se transforme en tiret.

    Par contre j'ai jamais utilisé l'autoloader du ZF 1.8, mais dans ZF 1.7, quand on appelait une classe Form_GoogleForm, elle devait se trouver dans le dossier nommé "Form" de ton application mvc.

  6. #6
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Citation Envoyé par Alshten Voir le message
    Avec l'autoloader, le nommage des fichiers est très important. Ton fichier doit s'appeller "google-form.php" et ta classe "googleForm". La majuscule se transforme en tiret.
    ça m'a échappé, je préfère que tu renomme ta classe en Form_Googleform et ton Fichier googleform.php

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

Discussions similaires

  1. [PDO] Ne trouve pas la classe pdo
    Par sliderman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/10/2007, 17h18
  2. Trouve pas mes classes sur le serveur de production
    Par batataw dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/09/2007, 12h01
  3. Javac ne trouve pas mes autres packages
    Par bibx dans le forum ANT
    Réponses: 1
    Dernier message: 17/08/2006, 10h34
  4. [JNI] Java ne trouve pas mes méthodes natives
    Par carotte31 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/06/2006, 21h47
  5. [JAR]Création de Jar -> trouve pas la classe main
    Par Zapan dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/01/2006, 11h17

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