Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Hello à tous,
Je suis en train de commencer avec le framework et je suis ce tutorial (peut-être certains d'entre-vous l'ont même réalisé)
http://www.reseaucerta.org/cotecours/cc … ma-general
Par contre au point 14.4 il est mentionné ceci dans le Controller ( ResultatsController)
$d = new Diplome($i, $idResponsable, 'lib_'.$i, ($i+1)*2);
Diplome = le modèle et il n'arrive pas à être invoqué car la page de la vue index.phtml me retourne :
Fatal error: Class 'Diplome' not found in
ce qui me parait logique car il ne peut pas connaitre la classe...
Dans mon bootstrap j'ai mis ceci
set_include_path( APPLICATION_PATH . '/../library' . PATH_SEPARATOR . APPLICATION_PATH . '/models/' . PATH_SEPARATOR . get_include_path() );
Ouch... dur dur ce début ^^
Hors ligne
il faut soit que tu mette l'autoload soit que tu charge la classe
Hors ligne
En fait il fait l'autoload mais je me demande si ce que j'ai mis est suffisant, je vais encore rechercher un peu sur l'autoload
// Définition de l'emplacement define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application/')); set_include_path( APPLICATION_PATH . '/../library' . PATH_SEPARATOR . APPLICATION_PATH . '/models/' . PATH_SEPARATOR . get_include_path() ); error_reporting(E_ALL|E_STRICT); require_once('Zend/Loader/Autoloader.php'); require_once('Zend/Loader/Autoloader/Interface.php'); Zend_Loader_Autoloader::getInstance(); $params = array( 'host' => '127.0.0.1', 'username' => 'root', 'password' => '', 'dbname' => 'tutoMvc', 'options' => '' ); $db = Zend_Db::factory('pdo_mysql', $params); $db->getConnection();
Hors ligne
Constatation c'est que si je fais le chargement manuellement en faisant :
Zend_Loader::loadClass('Diplome');
Alors la classe se charge... et ça foncitonne. Comme si l'Autoload ne se faisait pas, est-ce qu'il y a pas quelque chose du style à respecter exemple appeler toutes ses classes Zend_Classe.php
Hors ligne
Essaye ce bout de code:
include "Zend/Loader.php"; Zend_Loader::registerAutoload();
Hey bienvenue sur le forum Zend
Hors ligne
Hello,
@probitaille: pas en 1.8, c'est cei qu'il faut
require_once('Zend/Loader/Autoloader.php'); Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
A+
Hors ligne
Merci pour votre aide,
Le require_once ne retourne pas de message d'erreur (pourtant j'ai flag_error mode on) ce qui veut dire que le chargement du fichier s'effectue.
En faisant manuellement le chargement de la class cela fonctionne.
Personnellement j'arrive au stade ou je me dis que si on veut utiliser l'autoload il faut utiliser un préfixe particulier du style Zend_maclass.php mais je vois que cela ne fonctionne pas non plus.
C'est assez particulier..
Dernière modification par m1b (13-05-2009 18:15:00)
Hors ligne
J'ai consulté encore la doc, en ajoutant ceci ça fonctionne à présent
$autoloader->setFallbackAutoloader(true);
merci pour votre aide
Hors ligne