Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
J'ai une application modulaire faite sous ZF1.7.
Voici la structure de mes répertoires
Application Default Controllers Forms layouts Models Plugins MyAuthPlugin.php Views Module1 Module2 Bootstrap.php public index.php
Afin de migrer de ZF1.7 vers 1.10, voilà ce que j'ai fait
Dans application.ini j'ai mis
resources.frontController.moduleDirectory = APPLICATION_PATH resources.modules[] = ""
Dans bootstrap.php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initDefaultNamespace() { $this->bootstrap('frontcontroller'); $fc = $this->getResource('frontcontroller'); $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule()); new Zend_Application_Module_Autoloader(array( 'namespace' => '', // pas de namespace 'basePath' => APPLICATION_PATH . $defaultModule, )); } protected function _initDb() { $pluginDb = $this->getPluginResource('db'); $db = $pluginDb->getDbAdapter(); Zend_Registry::set('dbAdapter', $db); } protected function _initView() { Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');; } protected function _initPlugins() { $fc = $this->getResource('frontcontroller'); $fc->registerPlugin(new Default_Plugin_MyAuthPlugin()); } }
J'obtiens le message d'erreur suivante
Fatal error: Class 'MyAuthPlugin' not found in C:\xampp\htdocs\jamidb3\application\bootstrap.php on line 38
J'ai essayé différente combinaisons,
$fc->registerPlugin(new Default_Plugin_MyAuthPlugin()); $fc->registerPlugin(new Default_Plugins_MyAuthPlugin()); $fc->registerPlugin(new Plugin_MyAuthPlugin()); $fc->registerPlugin(new Plugins_MyAuthPlugin());
ça ne marche pas du tout. La seule méthode qui a marché et de rajouter dans index.php le path APPLICATION_PATH .'/default/plugins/'
Ensuite j'ai changé ceci dans mon bootsrap.php
protected function _initPlugins() { require_once 'MyAuthPlugin.php'; $fc = $this->getResource('frontcontroller'); $fc->registerPlugin(new MyAuthPlugin()); }
Que faire pour que l'autoload marche bien?
Dernière modification par ziedb (31-05-2010 00:40:15)
Hors ligne
En gardant, pour l'instant, la solution provisoire que j'ai trouvé pour le problème du plugin, j'obtiens une exception
exception 'Zend_Db_Table_Exception' with message 'No adapter found for access'
Cette exception a lieu dans mon plugin MyAuthPlugin au niveau de la deuxième ligne de code suivante
Zend_Loader::loadClass('access'); $access = new access();
Le fichier acess existe sous default/models/acess.php
voici le contenu de mon fichier application.ini
resources.db.adapter = "PDO_PGSQL" resources.db.params.host = "localhost" resources.db.params.username = "postgres" resources.db.params.password = "pass" resources.db.params.dbname = "mydb" resources.db.isDefaultTableAdapter = true
Dernière modification par ziedb (31-05-2010 02:22:47)
Hors ligne
J'ai changé :
Zend_Loader::loadClass('access'); $access = new access();
par
$access = new Default_Model_Access();
J'ai quasiment la même erreur
exception 'Zend_Db_Table_Exception' with message 'No adapter found for Default_Model_access'
Hors ligne
any help please
Hors ligne