Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-03-2011 22:26:26

Darkstar34
Nouveau membre
Date d'inscription: 27-02-2011
Messages: 3

Page introuvable à la moindre exception

Bonjour,

J'ai essayé de mettre en place un ErrorController basique afin d'afficher mes exceptions. Mais à chaque fois que je lève moi même une exception ou que j'ai le moindre problème, mon navigateur me dit que la page est introuvable ou inaccessible.

ErrorController.php :

Code:

<?php

class ErrorController extends Zend_Controller_Action
{
    public function errorAction()
    {
        $this->view->message = "Error !";
    }
}
?>

Et ma vue error.phtml associé, basique :

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Zend Framework Default Application</title>
</head>
<body>
  <h1>An error occurred</h1>
  <h2><?php echo $this->message ?></h2>
</body>
</html>

J'ai aussi mis

Code:

Zend_Controller_Front::getInstance()->throwExceptions(true);

dans mon bootstrap.php, et je lève une exception dans une de mes actions en faisant un throw new Exception('erreur_test');, mais toujours 'Serveur distant ou fichier introuvable' dans mon navigateur...

Quelqu'un voit d'où ça pourrait venir ?

Hors ligne

 

#2 29-03-2011 00:00:38

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Page introuvable à la moindre exception

A priori un "Serveur distant ou fichier introuvable" c'est une erreur 404.

Si c'est bien ça, tu ne passes pas par le ZF, tu as un problème dans tes réécritures d'URL. Il faut plutôt aller voir dans ta conf apache ou ton .htaccess

Est-ce que tu peux nous donner un exemple d'URL qui marche et un autre qui ne marche pas ?

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 30-03-2011 00:42:44

Darkstar34
Nouveau membre
Date d'inscription: 27-02-2011
Messages: 3

Re: Page introuvable à la moindre exception

En fait mon url reste la même.

Par exemple lorsque j'accède à l'url http://127.0.0.1:10088/Allomoney/public/, tout fonctionne et s'affiche bien. Mais si je lève une exception dans mon IndexController, impossible d'afficher la page, pourtant mon ErrorController devrait récupérer l'exception et l'afficher à l'écran via la vue non ?

Hors ligne

 

#4 30-03-2011 02:30:41

nuxwin
Membre
Lieu: Caen (14)
Date d'inscription: 17-03-2011
Messages: 66

Re: Page introuvable à la moindre exception

Bonjour ;


Je vous rappel que par défaut, le Framework embarque un plu-gin intégré qui permet de gérer les exceptions levées par votre application. Il s'agit du plugin Zend_Controller_Plugin_ErrorHandler. Ce plugin à plus exactement pour objectif de:

- Intercepter les exceptions envoyées si aucune route ne correspond
- Intercepter les exception envoyées si un contrôleur ou une action ne peut pas être trouvée
- Intercepter les exception envoyées dans les contrôleurs.


Par défaut, ce plugin (normalement automatiquement enregistré) re-dirige vers le contrôleur ErrorController::errorAction() dans le module par défaut.

Ce que je vous conseille pour commencer:

1. Vérifier que votre contrôleur ErrorController se trouve bien dans le module par défaut, et si ce n'est pas le cas, je vous invite à lire la documentation ( http://framework.zend.com/manual/fr/zen … ugins.html - section: Zend_Controller_Plugin_ErrorHandler) pour savoir comment modifier les valeurs par défaut du plugin, notamment le module , le contrôleur ainsi que l'action à utiliser.

2. Vérifier que le plugin Zend_Controller_Plugin_ErrorHandler est bien enregistré:

A title d'exemple:

Code:

if(Zend_Controller_Front::getInstance()->hasPlugin('Zend_Controller_Plugin_ErrorHandler')) {
    echo 'Le plugin est présent (enregistré)';
} else {
    echo 'Plugin non présent (non enregistré)';
}
exit;

Note: Code à exécuter dans l'action index de votre contrôleur (par exemple).

3. Virer l'option Zend_Controller_Front::getInstance()->throwExceptions(true) dans la mesure où votre plugin ne sera pas invoqué si elle est activée.



Note: Merci de nous fournir plus d'information, notamment le contenu de votre fichier application.ini ainsi que le contenu complet de votre Bootstrap.

Cordialement ;

Dernière modification par nuxwin (30-03-2011 02:41:09)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages