IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[Gestion des urls] Mauvais controller


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    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.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    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.

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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
    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.

  6. #6
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $frontController->throwExceptions(false);
    Mon fichier ErrorController :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    Super,

    Je vais tester ça dans la journée.

    Encore merci à vous.

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

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

    Merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des URL par défaut des WebServices
    Par helios77 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/05/2013, 13h39
  2. Gestion des urls de son site
    Par themostmd dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 18/07/2011, 13h10
  3. [Smarty] Gestion des url: Lien non trouvé
    Par psgman113 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/04/2011, 17h28
  4. Gestion des URL en HMVC
    Par FMaz dans le forum Design Patterns
    Réponses: 0
    Dernier message: 01/09/2010, 05h38
  5. gestion des sessions et controle
    Par navorinco dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2009, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo