Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous !
Je souhaiterais me mettre à Zend et j'ai donc créé un répertoire "test" dans le "www" de mon Wamp. J'y ai déjà d'autres sites qui fonctionnent bien, avec rewrite_module activé et fonctionnel.
J'ai bien AllowOverride all dans <Directory "d:/wamp/www/"> du php.ini.
J''ai décoché magic_quotes_gpc et register_globals depuis le menu de config de wamp. J'ai coché short_tag_open.
Ayant suivi le tutoriel MVC http://g-rossolini.developpez.com/tutor … k/debuter/ j'ai l'architecture suivante :
www/site1/...
www/site2/...
www/test/application :
- models
- views
- scripts
- index avec index.phtml
- truc avec index.phtml, action.phtml
- helpers avec BaseUrl.php
- controlers avec IndexController et TrucController
- layouts avec layout.phtml
www/test/public :
- css avec site.css
- images
- js
Dans www/test/ j'ai aussi le .htaccess suivant :
# Règles de réécriture pour Zend Framework RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php # Sécurité : Ne pas autoriser le parcours de répertoires Options -Indexes # Configuration PHP php_flag magic_quotes_gpc off php_flag register_globals off php_flag short_open_tag on
et le index.php suivant :
<?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); date_default_timezone_set('Europe/Paris'); // mise en place des répertoires et chargement des classes set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . get_include_path()); include "Zend/Loader.php"; Zend_Loader::registerAutoload(); // setup controller $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('./application/controllers'); Zend_Layout::startMvc(array('layoutPath'=>'./application/layouts')); // run! $frontController->dispatch();
Dans mon IndexController j'ai ceci :
<?php class IndexController extends Zend_Controller_Action { function indexAction() { $this->view->title = "Les héros"; } function ajouterAction() { $this->view->title = "ajouter blabla"; } function supprimerAction() { $this->view->title = "supprimer blabla"; } }
Le problème est que je peux afficher http://localhost/test/ avec le texte issu de mon IndexController, action index.
Mais http://localhost/test/public/ me retourne le contenu du répertoire, http://localhost/test/public/index/ajouter/ me retourne un 404. Pourtant selon le tuto ces adresses devraient être fonctionnelles.
Que se passe-t-il ? Quelqu'un pourrait m'éclairer svp ?
Hors ligne
Hello,
Je pense qu'il manque peut-être un :
RewriteBase /test
dans ton .htaccess (mais je ne suis pas un expert) et un :
$frontController->setBaseUrl('/test');
dans ton index.php (celui-ci c'est sûr).
A+
Hors ligne
Hello !
Merci de ton attention, j'ai essayé tes deux propositions, mais elles n'ont pas solutionné le problème.
J'ai fini par me résoudre à reprendre le tuto de A à Z et m'efforcer de comprendre point par point. Désormais cela marche, sans que je sache ce qui n'allait pas auparavant :'(
Hors ligne
Hello,
Tu as créé un virtual host et modifier ton fichier hosts. C'est ça ?
A+
Hors ligne
Oui j'ai aussi créé un virtual host mais ce point du tutorial est assez obscur pour moi.
Mon virtual host dans le httpd.conf de Wamp (Apache) :
<VirtualHost *:80> DocumentRoot d:/WAMP2/www ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot d:/WAMP2/www/tutoriel-zf/public ServerName localhost/tutoriel-zf </VirtualHost>
Du coup, j'ai http://localhost/tutoriel-zf/public/index/ajouter/ qui ne fonctionne pas, pourtant d'après le tutorial cela devrait. Cela me retourne ceci :
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (public)' in D:\WAMP2\www\tutoriel-zf\library\Zend\Controller\Dispatcher\Standard.php:249 Stack trace: #0 D:\WAMP2\www\tutoriel-zf\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 D:\WAMP2\www\tutoriel-zf\index.php(21): Zend_Controller_Front->dispatch() #2 {main} thrown in D:\WAMP2\www\tutoriel-zf\library\Zend\Controller\Dispatcher\Standard.php on line 249
Par contre j'ai http://localhost/tutoriel-zf/index/ajouter/ qui fonctionne sans problème.
Hors ligne
Pages: 1