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 :

Autochargement des modèles [ZF 1.10]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Autochargement des modèles
    Bonjour, je débute sous Zend Framework, et en suivant un tutoriel, j'ai un problème pour l'autoload des modeles.

    Voici mon index.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
    <?php
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 1);
    date_default_timezone_set('Europe/Paris');
     
    define('APPLICATION_PATH', realpath(dirname(__FILE__)));
    set_include_path(
          PATH_SEPARATOR . '../library'
        . PATH_SEPARATOR . '../application/models'
        . PATH_SEPARATOR . get_include_path());
     
     
    // Autoloader
    require_once 'Zend/Loader/Autoloader.php';
    $autoloader = Zend_Loader_Autoloader::getInstance();
     
    // Chargement de la configuration
    $config = new Zend_Config_Ini('../application/configs/config.ini', 'general');
    $registry = Zend_Registry::getInstance();
    $registry->set('config', $config);
     
    // Mise en place de la BDD
    $db = Zend_Db::factory($config->db);
    Zend_Db_Table::setDefaultAdapter($db);
     
    // setup controller
    $frontController = Zend_Controller_Front::getInstance();
     
    $frontController->throwExceptions(true);
    $frontController->setControllerDirectory('../application/controllers');
    Zend_Layout::startMvc(array('layoutPath'=>'../application/layouts'));
     
    // run!
    $frontController->dispatch();


    Et mon Controller index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    class IndexController extends Zend_Controller_Action 
    {
        public function indexAction()
        {
            $this->view->title = "Mes albums";
     
           $album = new Model_DbTable_Albums();
        }

    Et enfin, mon modele Albums.php, qui se trouve dans public/application/modeles/DbTable/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     
    class Model_DbTable_Albums extends Zend_Db_Table
    {
        protected $_name = 'albums';
    }


    L'erreur est qu'il ne trouve pas ma class Model_DbTable_Albums, alors que normalement il devrait l'auto-charger.

    Si je met ceci au début du controller Index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include "../application/models/DbTable/Albums.php";
    Ca fonctionne -logique-



    Donc le problème doit être dans mon index.php, mais je n'arrive pas à trouver où ...

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    étant donné que tu as mis "application/models" dans l'"include_path", la classe doit s'appeler "DbTable_Albums"

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse,

    j'ai essayé de changer "Model_DbTable_Albums" par "DbTable_Albums" dans le controller et le modele. Mais même erreur

    J'ai même essayé de juste changer

    . PATH_SEPARATOR . '../application/models'

    par

    . PATH_SEPARATOR . '../application'

    Mais toujours pareil, je comprends pas d'où ça peut venir

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    montre nous le message d'erreur complet

  5. #5
    Invité
    Invité(e)
    Par défaut
    Fatal error: Class 'DbTable_Albums' not found in C:\wamp\www\tutoriel-zf\application\controllers\IndexController.php on line 12


  6. #6
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    ah zut, c'est une erreur qui ne peux pas être interceptée donc elle n'est pas très parlante

    essaye de mettre la ligne suivante dans le fichier index.php juste après l'appel à "set_include_path" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include "DbTable/Albums.php";

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

Discussions similaires

  1. bibliothéques des modèles mathématiques
    Par foulen dans le forum C++
    Réponses: 3
    Dernier message: 20/02/2007, 18h21
  2. [POI]Utiliser des modèles de document, c'est possible ?
    Par hugo123 dans le forum Documents
    Réponses: 5
    Dernier message: 04/09/2006, 12h52
  3. Modéliser des modèles de documents
    Par raoudi57 dans le forum Débuter
    Réponses: 5
    Dernier message: 10/11/2005, 20h23
  4. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15
  5. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22

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