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 06/04/2008, 10h59   #1
Membre du Club
 
Inscription : mars 2008
Messages : 152
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2008
Messages : 152
Points : 58
Points : 58
Par défaut [Gestion des urls] Mauvais controller

Bonjour,

J'ai un petit soucis: J'aimerais pouvoir redirigé l'utilisateur ou même afficher une erreur dans le cas ou une URL avec un mauvais controlleur serai entrée.

Code :
1
2
3
 
 
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (test)' in C:\wamp\www\Monsite\library\Zend\Controller\Dispatcher\Standard.php:249 Stack trace: #0 C:\wamp\www\Monsite\library\Zend\Controller\Front.php(914): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\Monsite\index.php(37): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\wamp\www\Monsite\library\Zend\Controller\Dispatcher\Standard.php on line 249
Merci!
Spiff__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 14h53   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Tu sembles débuter avec le Zend Framework. j'aimerais te suggérer de lire la documentation et/ou des tutoriels afin de te familiariser avec ZF avant de commencer à poser des questions.

http://zend-framework.developpez.com/
http://framework.zend.com/manual/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 15h01   #3
Membre du Club
 
Inscription : mars 2008
Messages : 152
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2008
Messages : 152
Points : 58
Points : 58
Merci,

En ce qui concerne les tutoriaux, j'ai suivis ceux dont j'avais besoin.
J'ai pourtant cherché sur le net des réponses a mes questions, d'où mon intervention dans ce forum.

Tout est en place seulement je ne sais vers ou me tourner pour ce qui concerne la gestion de cette erreur: Si la page n'existe pas, comment rediriger vers une page plutôt que de le voir l'erreur s'afficher. J'ai pourtant essayer des "try" la ou je pensais être utile sans succès.

Encore merci.
Spiff__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 15h04   #4
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Il y a ceci : http://julien-pauli.developpez.com/t...c-exceptions2/

Ca fonctionne très bien chez moi, faut juste faire attention de ne pas laisser

$frontController->throwExceptions(true);


dans le bootstrap, sinon ça ne fonctionne pas.
Coyote Terrorist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 15h06   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Une autre approche est de considérer que cette gestion des erreurs est de l'optimisation. Tu pourras toujours te pencher plus tard sur cette question, par exemple lorsque tu auras appris l'existence de l'ErrorController

Tel que je te l'ai dit, la documentation officielle propose une solution à ton problème :
http://framework.zend.com/manual/en/...d.errorhandler
Citation:
Zend_Controller_Plugin_ErrorHandler est un plugin intégré d'office dans le modèle MVC, il sert à gérer les exceptions envoyées par l'application, en particulier celles concernant des contrôleurs ou des actions manquants.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 15h09   #6
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
Il y a beaucoup plus simple : crée un controlleur ErrorController, avec une action errorAction. Ce controlleur est automatiquement géré par le framework.

N'oublies pas de mettre ceci dans ton bootstrap :
Code :
$frontController->throwExceptions(false);
Mon fichier ErrorController :
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
<?php
 
	/**
	 * Cette classe gère les erreurs de navigation (page inexistante, etc).
	 * Une partie du code est tiré d'un exemple de Julien Pauli (http://julien-pauli.developpez.com).
	 */
	class ErrorController
	{
	    private $_exception;
	    private static $errorMessage;
	    private static $httpCode;
 
	    public function preDispatch()
	    {
	    	$this->_exception = $this->_getParam('error_handler');
 
	    	switch ($this->_exception->type) {
	            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
	            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
	                self::$httpCode = 404;
	                self::$errorMessage = 'Page introuvable';
	            break;
	            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_OTHER:
	            	switch (get_class($this->_exception->exception)) {
	            		case 'Zend_View_Exception' :
	            			self::$httpCode = 500;
	            			self::$errorMessage = 'Erreur de traitement d\'une vue';
	            		break;
	            		case 'Zend_Db_Exception' :
	            			self::$httpCode = 503;
	            			self::$errorMessage = 'Erreur de traitement dans la base de données';
	            		break;
	            		case 'Metier_Exception' :
	            			self::$httpCode = 200;
	            			self::$errorMessage = $this->_exception->exception->getMessage();
	            		break;
	            		default:
	            			self::$httpCode = 500;
	            			self::$errorMessage = 'Erreur inconnue : '. $this->_exception->exception->getMessage();
	            		break;
	            	}
	            break;
	    	}
 
	    }
 
	    public function errorAction()
	    {
	    	$this->view->message = self::$errorMessage;
	    	$this->view->httpCode = self::$httpCode;
 
	    	// Affiche la vue.
	    	echo $this->view->render("erreur/erreur.tpl");
	    }
 
	}
Bon courage.
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 15h19   #7
Membre du Club
 
Inscription : mars 2008
Messages : 152
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2008
Messages : 152
Points : 58
Points : 58
Super,

Je vais tester ça dans la journée.

Encore merci à vous.
Spiff__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2008, 00h16   #8
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2008
Messages : 23
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2008
Messages : 23
Points : 30
Points : 30
Hello,
je débute avec le Zend Frameworks, c'est exactement les pistes que je cherchais...

Merci ^^
Rhad@ 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 19h07.


 
 
 
 
Partenaires

Hébergement Web