Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2007, 15h42   #1
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Par défaut MVC : n modules avec 1 models

Bonjour,

J'ai une application comportant plusieurs modules qui partagent le même répertoire Model (pour mutualiser les classes métiers entre les différents modules).

Voici l'arborescence :

<Racine-application>
---<models>
---<applications>
------<module1>
---------<controllers>
---------<views>
------<module2>
---------<controllers>
---------<views>
------<module3>
---------<controllers>
---------<views>

Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');
 
set_include_path('.' . PATH_SEPARATOR . './library'
.PATH_SEPARATOR . './models/'
.PATH_SEPARATOR . get_include_path());
 
include "./library/Zend/Loader.php";  
 
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Controller_Request_Http');
 
// setup controller   
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./applications');
 
// run!
$frontController->dispatch();
?>
Mais lorsque je visualise dans IE à l'adresse http://localhost/module1/index/, j'ai l'erreur suivante :


Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (module1) C:\wamp\www\library\Zend\Controller\Dispatcher\Standard.php:193 Stack trace: #0 C:\wamp\www\library\Zend\Controller\Front.php(911): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\index.php(21): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\wamp\www\\library\Zend\Controller\Dispatcher\Standard.php on line 193


Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance.
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 16h04   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Salut,

Tu dois spécifier au routage que tu utilises une structure modulaire.

Code :
1
2
3
 
$router = $frontController->getRouter();
$router->addRoute('mod', new Zend_Controller_Router_Route(':module/:controller/:action/*'));
Puis spécifier les modules:

Code :
1
2
3
4
5
6
7
8
$frontController->setControllerDirectory(array(
    'module1' => './application/module1/controllers/',
    'module2' => './application/module2/controllers/'
));
// spécifier le module par défaut
$frontController->setDefaultModule('module1');
$frontController->setDefaultControllerName('index');
$frontController->setDefaultAction('index');
Ensuite tes controlleur dans les modules doivent être préfixer par le nom du module comme ceci:

Code :
1
2
3
4
5
6
7
8
9
10
<?php
Zend_Loader::loadClass('Zend_Controller_Action');
class Module1_IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {
 
    }
    // etc...
}
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 16h20   #3
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Merci bcp!

Ca marche!

A bientôt!
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h01.


 
 
 
 
Partenaires

Hébergement Web