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 28/07/2007, 13h47   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 5
Points : 2
Points : 2
Par défaut Gestion des exceptions avec le plugin ErrorHandler ?

Bonjour,
Je suis nouveau dans l'utilisation de Zend Framework et je tente d'incorporer à mon site la gestion des exception en utilisant le plugin ErrorHandler en suivant le tutoriel : http://julien-pauli.developpez.com/t...c-exceptions2/

Mais il y a plusieurs choses que je ne comprends pas dans le code de ce tutoriel, il semble être écrit pour une classe frontcontroller, alors que je n'en ai pas (mon front controller est le fichier index.php et n'est pas une classe).
Ensuite, la ligne "$frontController->dispatch($request, $response);" je ne comprends toujours pas ce que sont $request et $response, après avoir passé plusieurs heures dans la doc. D'où viennent-ils ? Et comment les récupérer ?

Et de là, je n'arrive pas à mettre en place la gestion des exceptions.
J'ai bien tenté de créer un ErrorController (sensé être le nom par défaut) avec une méthode errorAction() mais rien ne se passe lors des erreurs, j'ai le message d'erreur qui s'affiche. Je n'atteins jamais le ErrorController. Je pense devoir mettre des try...catch mais comment rediriger sur l'ErrorController en spécifiant l'erreur ?

Merci d'avance
AzAt0th est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2007, 16h54   #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

Attention, ce n'est pas un tutoriel mais un atelier. Les concepts ne sont pas expliqués, il s'agit simplement de proposer une solution. À toi d'extrapoler
__________________
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 28/07/2007, 18h05   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Voici la doc officielle sur le plugin (encore en anglais) :
http://framework.zend.com/manual/fr/...ugins.standard
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2007, 18h37   #4
Invité de passage
 
Inscription : octobre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 5
Points : 2
Points : 2
Par défaut Résolution du problème

Merci pour le lien, bien que je l'avais déjà consulter.
J'ai résolu mon problème.

En fait, j'avais finalement suivi la documentation sur ce plugin et mis en place un ErrorController, mais celui-ci n'était jamais sollicité et je ne comprenais pas pourquoi, au mieux j'arrivais à capturer une exception (type erreur 404) sur le try...catch autour du dispatch du frontcontroller (comme présenté dans l'atelier de Julien Pauli).

Et la lumière fut : j'avais tout simplement laissé
Code :
$frontcontroller->throwExceptions(true);
Ce qui empêchait la redirection sur ErrorController à la moindre exception.
Ca marche tout de suite beaucoup mieux
AzAt0th est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2007, 19h06   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par AzAt0th
Et la lumière fut : j'avais tout simplement laissé
Code :
$frontcontroller->throwExceptions(true);
Ce qui empêchait la redirection sur ErrorController à la moindre exception.
Ca marche tout de suite beaucoup mieux
Ah, les joies du développement
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2008, 13h54   #6
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 29
Points : 17
Points : 17
Je déterre le sujet, car j'ai également essayé d'intégrer cette gestion des erreurs à mon site.

Je butte en fait après la déclaration du FrontController
Code :
1
2
3
4
5
6
7
8
// setup controller
$frontController = Zend_Controller_Front::getInstance();
//~ $frontController->throwExceptions(true); avec ou sans, aucun changement
$frontController->setControllerDirectory('./application/controllers');
$errorHandler = $frontController->getPlugin('Zend_Controller_Plugin_ErrorHandler');
$errorHandler->setErrorHandlerModule('monmodule');
$errorHandler->setErrorHandlerController('error');
$errorHandler->setErrorHandlerAction('erreurs');
$errorHandler = $frontController->getPlugin('Zend_Controller_Plugin_ErrorHandler'); me renvoie en fait false, le plugin ne peut donc pas être chargé, et ce pour une raison que j'aimerais bien connaître.

Même après avoir retourné l'API dans tous les sens, je ne comprends pas d'où vient le problème. Je vais tâcher de potasser encore, mais si quelqu'un avait la réponse je gagnerais du temps et m'économiserais quelques crises de nerfs.

D'avance merci
mattstriker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 14h29   #7
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
Bonjour MattStriker,

Je ne pense pas répondre directement à ta question, mais j'ai essayé de faire comme tu as fais et ça ne fonctionnait pas non plus.
Du coup j'ai procédé comme ci-dessous :

Code :
1
2
3
4
5
6
7
 
$errorHandler = new Zend_Controller_Plugin_ErrorHandler();
$errorHandler->setErrorHandlerModule('monmodule')
       		 ->setErrorHandlerController('error')
       		 ->setErrorHandlerAction('erreurs');
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin($errorHandler);
J'espère t'avoir aidé.
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 14h31   #8
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 29
Points : 17
Points : 17
Merci de ta réponse rapide, je vais essayer ça dès que possible
mattstriker 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 20h36.


 
 
 
 
Partenaires

Hébergement Web