Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 01/04/2011, 19h41   #1
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
Par défaut Plusieurs contrôleurs, Multi Controller

Bonjour à tous :
J’ai un petit souci à propos de MVC Zend. En effet, j’utilisais un unique contrôleur frontal indexController dans mon application et cette fois-ci, il s’avère insuffisant (pour des raisons de clarté et facilité de maintenance). J’ai voulu passer au multi-controller.

Mais le problème c’est qu’avec la logique du Zend_Controller_Front que j’utilisais, je dois créer un nouveau fichier portant le même nom que le contrôleur sous peine d’un 404… En bref, autant de fichiers que des contrôleurs. Pire encore, chacun de ce fichier devrait répéter un même code.

Code :
1
2
3
4
5
//…include path, etc…
    $frontal = Zend_Controller_Front::getInstance();
    $frontal->setControllerDirectory('./application/controllers');
        Zend_Layout::startMvc(array('layoutPath'=>'./application/layouts'));
    $frontal->dispatch();
Y a-t-il d’alternative ? C’est un problème du fameux bootStrap ? y a-t-il une possibilité de configurer cela uniquement via un seul fichier index.php (par exemple) ? Je dirai comme en ASP. NET
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 19h55   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Oui c'est possible
mon index
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
<?
	set_include_path('.'
	. PATH_SEPARATOR . '../application/models/'
	. PATH_SEPARATOR . '../application/views/scripts/'
	. PATH_SEPARATOR . get_include_path());
 
	require_once 'Zend/Loader/Autoloader.php'; 
	Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
 
 
		// load configuration
		$config_db_access = new Zend_Config_Ini('../application/config.ini', 'db_access');
		$registry = Zend_Registry::getInstance();
		$registry->set('config_db_access', $config_db_access);
 
		// setup database
		$db = Zend_Db::factory($config_db_access->db->adapter, $config_db_access->db->config->toArray());
		Zend_Db_Table::setDefaultAdapter($db);
		$registry->set('dbAdapter', $db);
 
		// Setup controller
		$controller = Zend_Controller_Front::getInstance();		
		$controller->setControllerDirectory('../application/controllers');
		$controller->throwExceptions(true); 
		//$controller->registerPlugin(new MyPluginAuth($acl));
 
	try
	{	
		$controller->dispatch();
 
	}
	 catch (Exception $exception) 
	{ 
 
		//ANALYSE DE LA PROVENANCE DE L'ERREUR
		if($exception instanceof Zend_Controller_Exception)
	    {
	            $httpCode = 'Erreur 404';
	            $errorMessage = 'Page introuvable';
	    }
	    elseif($exception instanceof Zend_Db_Exception)
	    {
	       		$httpCode = "Erreur d'acc&egrave;s &agrave; la base de donn&eacute;es";
		       	//$errorMessage = $exception->getMessage();                        
	    }
	    elseif($exception instanceof Zftemplate_User_Exception)
	    {
	    	   	$httpCode = 'Erreur inconnue';
	       		$errorMessage = 'Vous avez commis une erreur !';            
	    }
	    elseif($exception instanceof Zftemplate_Cache_Exception)
	    {
	       		$httpCode = 'Erreur inconnue';
	       		$errorMessage = 'Erreur de cache';        
	    }
	    else
	    {
	       		$httpCode = 'Erreur 503';
	       		$errorMessage = 'Erreur de traitement dans la base de donn&eacute;ees';       		
		}
 
		require_once 'errors/error.phtml'; 		
	}
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 21h39   #3
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
Par défaut Résolu

Merci m4riachi pour votre réponse! cette index ne diffère pas du mien du point de vue de la configuration du contrôleur frontal!



Mais enfin, le problème c'était du côté Apache, il me fallait créer un Virtual Host, ca ne marche pas avec simple Alias, bizarre!
tresorunikin 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 01h25.


 
 
 
 
Partenaires

Hébergement Web