Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je m'essaye au Framework Zend (v1.11.12, minimal) et rencontre l'erreur suivante :
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\...\ZendFramework-1.11.12-minimal\library\Zend\Controller\Plugin\Broker.php on line 336
Cette erreur survient lorsque l'URL saisie est, par exemple, http://localhost/test/index/login
Pas de problème lorsque l'URL vaut http://localhost/test/public/index/login
Environnement : XAMPP sous Windows
Voici ce qui est présent sur le disque dans un dossier htdocs\test:
/.htaccess /application/controllers/IndexControllers.php /application/views/scripts/index/index.phtml /application/views/scripts/index/login.phtml /application/views/scripts/index/register.phtml /public/index.php
C'est tout
Les fichiers *.phtml sont vides (mais néanmoins obligatoires, à priori, du moins en l'état ça plante si absents)
Le .htaccess :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ public/index.php [NC,L]
Egalement, le contenu du fichier index.php :
[lang=php]// Chargement automatique (remplace require, include...) include 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $front = Zend_Controller_Front::getInstance(); $front->setControllerDirectory('../application/controllers'); $front->dispatch();
Et enfin le contenu de IndexController.php :
[lang=php]class IndexController extends Zend_Controller_Action { public function indexAction() { echo "This is the indexAction()."; } public function loginAction() { echo "This is the loginAction()."; } public function registerAction() { echo "This is the registerAction()."; } }
Si vous remarquez quelques similitudes avec le tutoriel d'IBM (*) ce n'est pas un hasard .
Bien sûr, ici ou là, je tente d'adapter à la dernière version 1.X du Framework, et à l'arborescence "conseillée" (**)
Bref, il semble que le contrôleur frontal ne retrouve pas ses petits, ou qu'il y ait une récursion (?) lorsque l'URL ne contient pas "/public"...
Je bloque, aussi je me tourne vers vous.... Avez-vous une idée du pourquoi ?
D'avance un grand MERCI pour vos lumières
---
Question subsidiaire : également, lorsque l'URL saisie est localhost/test, la page obtenue en retour affiche le contenu du dossier "test"... tandis que j'aimerais bien entendu que le script public/index.php soit exécuté...
---
(*) dont vous fournissez un lien, et c'est d'ailleurs grâce à votre site que j'ai eu connaissance de ce tutoriel : http://www.ibm.com/developerworks/opens … php-zend1/
(**) http://framework.zend.com/manual/fr/lea … oject.html
Hors ligne
Il te faut un vhost, et le tuto d'IBM date de 2006 quand même :x
Hors ligne
Pages: 1