Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je débute avec Zend Framework, et j'ai donc suivi un tuto :
http://www.dator.fr/tutorial-creer-une- … tchmydesk/
Mais je ne parviens pas à accéder à mon module "backend", en fait, je ne peux accéder qu'au module défini par défaut dans le fichier .ini .
J'ai regarder les différents sujets déjà postés, mais je n'ai pas réussis à résoudre mon problème.
J'espère que quelqu'un pourra m'aider, car c'est pour développer une application lors de mon stage.
Hors ligne
As-tu regardé ce topic : http://www.z-f.fr/forum/viewtopic.php?id=3667
J'avais le même problème que toi
Hors ligne
Hors ligne
Actuellement j'ai ça :
extrait de : application/bootstrap.php
protected function _initAutoload() { // On enregistre les modules (les parties de notre application), souvenez-vous : Backend et Frontend $loader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH)); return $loader; }
application/configs/application.ini
; initialize front controller resource resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/controllers" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.defaultModule = "frontend" resources.frontController.defaultAction = "index" resources.frontController.defaultController = "index" resources.modules[] = ""
application/modules/backend/bootstrap.php
<?php /** * Module backend - Bootstrap */ class Backend_Bootstrap extends Zend_Application_Module_Bootstrap { }
application/modules/frontend/bootstrap.php
<?php /** * Module frontend - Bootstrap */ class Frontend_Bootstrap extends Zend_Application_Module_Bootstrap { }
Et donc, quand je vais sur http://localhost , j'ai bel et bien l'affichage de ma page test du frontend, mais que je veux aller sur http://localhost/backend , j'ai le droit à
The requested URL /backend was not found on this server.
Dernière modification par Xls (30-07-2009 13:18:01)
Hors ligne
dev-k a écrit:
Il y a ceux là aussi qui sont bien.
http://www.atirjavid.com/Zend-Framework … cture.html
http://www.atirjavid.com/Zend-Framework … ation.html
http://www.atirjavid.com/Zend-Framework … lugin.html
Merci je vais regarder si ça peut m'aider, à la rigueur je repars avec cette base "propre".
Mais si quelqu'un a la solution pour mon problème, ça serait encore mieux
Hors ligne
Je ne vois pas trop mais cette ligne me dérange
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/controllers"
Je ne vois pas à quoi elle sert surtout que les contrôleurs sont dans
APPLICATION_PATH "/modules/frontend
et
APPLICATION_PATH "/modules/backend
Hors ligne
j'ai enlevé la ligne d'appel du controller, et ça ne résout pas mon problème d'accès a mon module "backend"
Hors ligne
index.php
<?PHP defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); defined('LIBRARY_PATH') || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library')); defined('ZEND_PATH') || define('ZEND_PATH', realpath(dirname(__FILE__) . '/../../../frameworks')); defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // On modifie l'include path de PHP set_include_path(implode(PATH_SEPARATOR, array( realpath(ZEND_PATH), get_include_path(), ))); // On a besoin de Zend Application pour lancer notre application require_once 'Zend/Application.php'; // On lance la session require_once 'Zend/Session.php'; Zend_Session::start(); // On créé l'application, on lance le bootstrap et on lance l'application ! $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
application.ini
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 phpSettings.date.timezone = "Europe/Paris" includePaths.library = LIBRARY_PATH bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" ; so auto-loading will find our classes in library/App autoloaderNamespaces[] = "App_" ; initialize database resources.db.adapter = "PDO_MYSQL" resources.db.params.host = "localhost" resources.db.params.username = "bdd_user" resources.db.params.password = "*******" resources.db.params.dbname = "******" resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss" resources.db.isDefaultTableAdapter = true ; initialize front controller resource resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.defaultModule = "frontend" resources.frontController.defaultAction = "index" resources.frontController.defaultController = "index" resources.modules[] = "" ; initialize layout resource resources.layout.layoutPath = APPLICATION_PATH "/layouts" [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
Dernière modification par Xls (30-07-2009 16:05:09)
Hors ligne
Chez moi j'ai cette ligne en plus :
resources.frontController.controllerDirectory = "/controllers"
Et qu'un seul bootstrap pour le moment.
APPLICATION
modules
back
front
layouts
bootstrap.php
Ps: l'action et le controleur par défaut sont de toute façon index, tu n'as pas besoin de le préciser
Hors ligne
Vincent a écrit:
Chez moi j'ai cette ligne en plus :
resources.frontController.controllerDirectory = "/controllers"
Et qu'un seul bootstrap pour le moment.
APPLICATION
modules
back
front
layouts
bootstrap.php
Ps: l'action et le controleur par défaut sont de toute façon index, tu n'as pas besoin de le préciser
Au début, j'avais seulement un seul bootstrap.php, mais en regardant le forum, j'ai rajouté un bootstrap.php par module.
Et la ligne que tu as en plus, on m'a dit plus haut qu'elle était inutile, puisque j'ai les controllers dans chacun de mes modules.
Hors ligne
Xls a écrit:
Et la ligne que tu as en plus, on m'a dit plus haut qu'elle était inutile, puisque j'ai les controllers dans chacun de mes modules.
Non c'est pas inutile au contraire mais tu vois bien que les chemins sont mauvais, en tout cas moi je n'ai pas cette ligne qui me parait inutile donc je ne pense pas que ça résolve le problème.
Vincent a écrit:
Et qu'un seul bootstrap pour le moment.
De toutes façons un seul suffit. Si tu mets plusieurs bootstrap, ils sont tous exécutés que tu appelles ton back ou ton front. En mettre plusieurs sert juste à faire plus propre et à ne pas mélanger du code bootstrap back dans du code bootstrap front.
Je vais quand même regarder ça de plus prêt car ça me parait bon tout ça.
Il doit y avoir un problème d'arborescence je suppose
a+
Hors ligne
Peut-être un problème de layout aussi vu que sur le tuto de Dator il n'a pas encore expliqué comment gérer ça.
Regarde les liens que je t'ai donné, personnellement je préfère cette façon de faire.
Hors ligne
Mr.MoOx a écrit:
Et sinon au niveau des routes et du htaccess ça donne quoi ?
J'ai rien de ce côté là, je pensais pas que c'était nécessaire pour la gestion des modules.
Hors ligne
dev-k a écrit:
Peut-être un problème de layout aussi vu que sur le tuto de Dator il n'a pas encore expliqué comment gérer ça.
Regarde les liens que je t'ai donné, personnellement je préfère cette façon de faire.
J'ai suivi le tuto que tu m'as fourni, et cela fonctionne correctement, merci, mais j'aimerais savoir par exemple pourquoi quand je rentre : http://localhost/admin, il me sort bel et bien le contenu de mon indexController mais quand je tape : http://localhost/admin/users, il me sort une erreur.
Request Parameters: array(3) { ["module"]=> string(5) "admin" ["controller"]=> string(5) "users" ["action"]=> string(5) "index" }
Mon fichier application/modules/admin/controllers/UsersController.php
<?php class Admin_UsersController extends Zend_Controller_Action { public function indexAction() { echo "<h3>Ceci est un test :: indexAction de Admin_UsersController</h3>"; }
Dernière modification par Xls (31-07-2009 10:34:30)
Hors ligne
Mr.MoOx a écrit:
...il me sort une erreur
Que dit ce message d'erreur ?
Pas grand chose :
Une erreur est survenue Exception information: Message: Stack trace: Request Parameters: array(3) { ["module"]=> string(5) "admin" ["controller"]=> string(5) "users" ["action"]=> string(5) "index" }
Dans la console de Zend Studio j'ai ceci:
Fatal error: Class 'Zend_Controller_Action' not found in C:\wamp\www\BleuVert\application\modules\admin\controllers\UsersController.php on line 2
Dernière modification par Xls (31-07-2009 10:36:45)
Hors ligne
Ben soit tu as l'autoload d'activé soit....
<?php require_once 'Zend/Controller/Action.php'; class Admin_UsersController extends Zend_Controller_Action ...
Là on est un peu dans une erreur de base de php.
Hors ligne
Mr.MoOx a écrit:
Ben soit tu as l'autoload d'activé soit....
Code:
<?php require_once 'Zend/Controller/Action.php'; class Admin_UsersController extends Zend_Controller_Action ...Là on est un peu dans une erreur de base de php.
Le but de l'autoloader, n'est pas d'éviter d'avoir recours à require_once et include_once ?
ps: cela ne fonctionne toujours pas.
Hors ligne
C'est bien ce que je dis, soit tu as l'autoload activé et dans cec cas là ... ben c'est super bizarre, soit s'il n'est pas activé, tu dois faire un require.
Vu l'erreur que tu as sur ta page, tu dois avoir un ErrorController qui intercepte la remonté d'erreur. Tu devrais le désactiver pendant ton dév, tu aurais ainsi des erreurs plus clair. Ou pas.
Hors ligne
Mr.MoOx a écrit:
C'est bien ce que je dis, soit tu as l'autoload activé et dans cec cas là ... ben c'est super bizarre, soit s'il n'est pas activé, tu dois faire un require.
Vu l'erreur que tu as sur ta page, tu dois avoir un ErrorController qui intercepte la remonté d'erreur. Tu devrais le désactiver pendant ton dév, tu aurais ainsi des erreurs plus clair. Ou pas.
ok merci, je vais essayer
Hors ligne
Bon je ne sais pas pourquoi, mais j'ai créer un nouveau controller en copiant le contenu de celui de indexController et en changeant juste le nom de class et ça fonctionne...
Donc bon mystère...
En tout cas merci à vous !
Hors ligne
Pages: 1