Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je suis toujours dans le premier tutoriel de ce site http://www.kitpages.fr/zf_quickIntroduction.html .
Je n'arrive pas à trouver où se situe mon problème, j'ai suivi le tutoriel en tout point.
J'en suis même arrivé à créer un VHost : zend qui pointe directement sur mon répertoire /home/david/www/testZend/ .
J'y ai créé un répertoire tutoriaux, donc son chemin d'accès est http://zend/tutoriaux/ .
Mais, j'ai un message d'erreur du contrôleur.
Zend_Controller_Dispatcher_Exception: Invalid controller specified (index) in www/testZend/tutoriaux/Zend/Controller/Dispatcher/Standard.php on line 173
Bien sur, je ne vois pas où c'est
Je vous donne les constantes modifiées par rapport aux fichier index.php du tutoriel
define("WEBAPP_DIR","/home/david/www/testZend/tutoriaux/");
define("PHP_INF_DIR",WEBAPP_DIR."PHP-INF/");
define("ROOT_URL","http://zend/tutoriaux/");
define("INCLUDE_PATH_SEPARATOR",":");
define("ZEND_FRAMEWORK_DIR","/home/david/www/outils/ZendFramework-0.9.1-Beta/library/");
Et le BaseUrl
$controller->setBaseUrl('/tutoriaux/');
Par avance, merci de vos réponses.
Hors ligne
Bonjour,
L'erreur que tu nous envoies (Invalid controller specified) signifie qu'il ne trouve pas le controller.
Si tu demandes l'URL http://zend/tutoriaux sans rien derrière, il cherche le controller par défaut qui
s'appelle IndexController.
Ce controller doit être une classe IndexController qui hérite de Zend_Controller_Action. Cette classe doit se trouver dans le répertoire
/home/david/www/testZend/tutoriaux/PHP-INF/ctrl/IndexController.php
(si tu as bien laissé la ligne
$controller->setControllerDirectory('PHP-INF/ctrl');
)
Bref :
* vérifie le nom de ta classe
* vérifie que le fichier est bien dans le bon répertoire
* vérifie que le nom du fichier est bon
* Vérifie les majuscules et les minuscules de tes fichiers et noms de classe (oui, le ZF y est sensible, unix aussi, macos mis à part)
A+, Philippe
Hors ligne
philippe a écrit:
Bonjour,
L'erreur que tu nous envoies (Invalid controller specified) signifie qu'il ne trouve pas le controller.
Si tu demandes l'URL http://zend/tutoriaux sans rien derrière, il cherche le controller par défaut qui
s'appelle IndexController.
Ce controller doit être une classe IndexController qui hérite de Zend_Controller_Action. Cette classe doit se trouver dans le répertoire
/home/david/www/testZend/tutoriaux/PHP-INF/ctrl/IndexController.php
(si tu as bien laissé la ligneCode:
$controller->setControllerDirectory('PHP-INF/ctrl');)
Bref :
* vérifie le nom de ta classe
* vérifie que le fichier est bien dans le bon répertoire
* vérifie que le nom du fichier est bon
* Vérifie les majuscules et les minuscules de tes fichiers et noms de classe (oui, le ZF y est sensible, unix aussi, macos mis à part)
A+, Philippe
Heureusement que tu es là pour me répondre, car le problème venait bien du nom du ficher : IndexController.php . Il comportait une minuscule en première lettre et je n'aurais jamais penser qu'il soit sensible à la casse sur les noms de fichiers donc avec l'appel comme ceci : http://zend/tutoriaux/ , tout fonctionne.
Par contre, quand je fais http://zend/tutoriaux/index.php , j'ai toujours la même erreur. Aurais-tu une autre idéé pour ce problème ?
du .htaccess RewriteEngine on RewriteBase /tutoriaux/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /tutoriaux/index.php [L]
Mais, j'ai l'impression qu'il n'est pas pris en compte. Car avec ou sans j'ai le même message d'erreur.
Encore merci, pour ces informations et du temps que tu prends pour me répondre sur mes questions d'apprentissage de l'environnement de développement proposé par Zend avec son Zend Framework.
Cordialement,
David
Hors ligne
dinoxyz a écrit:
Par contre, quand je fais http://zend/tutoriaux/index.php , j'ai toujours la même erreur. Aurais-tu une autre idéé pour ce problème ?
En fait c'est normal que ça ne fonctionne pas : avec la configuration actuelle, il interprete les URL de la façon suivante :
http://zend/tutoriaux/toto/titi
le ZF cherche le controlleur TotoController et dans le controlleur, l'action titiAction(). Si tu ne mets rien (http://zend/tutoriaux/), le controlleur par défaut est IndexControlleur et l'action par défaut est indexAction().
Par contre si tu mets http://zend/tutoriaux/index.php, il cherche un controlleur du type Index.phpControlleur. Là il n'aime pas. Par contre si tu mets http://zend/tutoriaux/index/index, il doit s'y retrouver.
C'est expliqué un peu plus en détail dans[/url]http://www.kitpages.fr/zf_tutorial.html[/url]
Dans tous les cas, suite à tes retours, je vais ajouter un paragraphe avec les problèmes rencontrés pour aider les suivants
Bon courage, Philippe
Hors ligne
dinoxyz a écrit:
car le problème venait bien du nom du ficher : IndexController.php . Il comportait une minuscule en première lettre et je n'aurais jamais penser qu'il soit sensible à la casse sur les noms de fichiers
Sur un serveur apache/php sur windows ca passera par contre sur un linux il sera sensible à la casse et ca va coincer. Donc bien prendre l'habitude d'utiliser la bonne casse pour être tranquille.
Dernière modification par Isilgawen (02-04-2007 09:03:50)
Hors ligne
Isilgawen a écrit:
Sur un serveur apache/php sur windows ca passera par contre sur un linux il sera sensible à la casse et ca va coincer. Donc bien prendre l'habitude d'utiliser la bonne casse pour être tranquille.
En effet, et c'est valable pour tout le code de manière générale. Il arrive que le dev soit en windows alors que la prod est sous Linux, et la moindre innattention dans la casse fout tout par terre lors du déploiement.
Il y avait des problèmes avec les noms de colonnes SQL aussi dans d'anciennes versions de ZF.
Je confirme donc : toujours respecter la casse, où que ca soit. Ca met déja de coté un problème qui peut faire perdre beaucoup de temps.
Hors ligne
J'ai été mis dedans avec ces explications là dans le paragraphe "création du IndexController.php"
... * Si l'URL est http://localhost/zendSite * le framework va chercher dans ctrl/ le fichier indexController.php (le controller par défaut) et appelle l'action indexAction() (l'action par défaut)
On voit des minuscule partout dans les noms de fichiers donc je ne pensais pas qu'il puisse être sensible à la casse sur les noms des fichiers.
J'ai pris l'habitude de développer et d'utiliser une station sur linux pour me rendre compte des problèmes avant le déploiement sur un serveur de production. Il est vrai que celui là amène son lot de modification et de sensibilisation auquel je n'aurai pas pensé, si j'étais resté dans le monde window$. Je préfère de loin le monde du libre qui reflète mieux les problèmes de production.
Mais merci, pour toutes ces informations et ce tutoriel qui vont mettre d'une grande utilité dans l'apprentissage de ce framework, je passe au suivant.
Cordialement,
David
Dernière modification par dinoxyz (02-04-2007 12:02:58)
Hors ligne
dinoxyz a écrit:
J'ai été mis dedans avec ces explications là dans le paragraphe "création du IndexController.php"
[...]
On voit des minuscule partout dans les noms de fichiers donc je ne pensais pas qu'il puisse être sensible à la casse sur les noms des fichiers.
Mea culpa Mister, j'ai tout corrigé.
Sinon j'ai ajouté un paragraphe sur le problèmes rencontrés, en prenant tes remarques et quelques autres envoyées dans les commentaires.
Merci pour tes retours, n'hésite pas à faire d'autres remarques sur le tutoriel suivant
Cordialement, Philippe
Hors ligne
philippe a écrit:
Mea culpa Mister, j'ai tout corrigé.
Sinon j'ai ajouté un paragraphe sur le problèmes rencontrés, en prenant tes remarques et quelques autres envoyées dans les commentaires.
Merci pour tes retours, n'hésite pas à faire d'autres remarques sur le tutoriel suivant
Cordialement, Philippe
De rien, mais j'ai déjà quelque petite chose à dire sur le tutoriel suivant c'est que les fichiers ne sont pas bien nommés n'ont plus. Exemple, si on décompresse ton archive sur un serveur linux, il ne fonctionnera pas.
Il manque aussi un fichier .htaccess qui pourrait faire un exemple sur une racine d'un site.
Si je vois d'autre problème, je crérai un autre post.
Cordialement,
David.
Hors ligne
philippe a écrit:
C'est corrigé dans le .zip
Philippe
Je testerai ça ce soir ou demain, merci.
Hors ligne
Pages: 1