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

MVC PHP Discussion :

Action par défaut : __call et les controllers


Sujet :

MVC PHP

  1. #1
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut Action par défaut : __call et les controllers
    Bonjour,

    Je développe des petits sites sous ZF en collaboration avec un webmaster qui s'occupe de la partie statique et de la charte graphique.
    Pour pouvoir améliorer notre collaboration, j'aurais besoin de mettre en place une routine d'action par défaut : si l'url http://monsite.fr/notmvc n'a pas d'action associée dans l'environnement MVC, je voudrais qu'il aille prendre la vue dans un répertoire static.
    Pas de problème, j'intercepte l'action inconnue dans le IndexController en utilisant la méthode magique __call($methode, $arguments).

    Sauf que l'url http://monsite.fr/notmvc va chercher un controller NotmvcController alors que j'aimerais qu'elle indique le controller IndexController (qui est le controller par défaut dans mon fichier de configuration de l'application) et l'action notmvcAction.

    Bref, pourquoi le controller par défaut n'est-il pas utilisé ?

    Le call lui-même marche bien, car cette adresse http://monsite.fr/index/notmvc effectue bien l'action souhaitée.

    --- edit ---
    Devrais-je jouer avec Zend_Router ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  2. #2
    Membre actif Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 245
    Points
    245
    Par défaut
    Salut.

    je viens de faire quelque test (je suis curieux).

    Bref, pourquoi le controller par défaut n'est-il pas utilisé ?
    Index et le controlleur par default, cela n'oblige en rien qu'en cas d'erreur les pages soit redirigé sur celle ci, or zend voit http://monsite.fr/notmvc comme une erreur.donc il émet un exection et dans mon cas me redirige sur le controleur d'erreur.

    Donc en métant __call dans ErrorController. la ca fonctionne pour moi.
    mais je pensse que le fait de passé par le controlleur d'erreur n'est pas adapter.

    je vais regarder la doc.

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par buse974 Voir le message
    Donc en métant __call dans ErrorController. la ca fonctionne pour moi.
    mais je pensse que le fait de passé par le controlleur d'erreur n'est pas adapter.

    je vais regarder la doc.
    J'avais moi aussi fait ce test, et moi non plus cela ne me satisfait pas au niveau fonctionnel.
    Je suis preneur de tout avis.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  4. #4
    Membre actif Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 245
    Points
    245
    Par défaut
    Je viens de trouvé ce que je pensse étre la solution.
    je te redirige sur la doc car je n'arrive pas a le faire fonctionné.

    http://framework.zend.com/manual/fr/...tions.internal

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par buse974 Voir le message
    Je viens de trouvé ce que je pensse étre la solution.
    je te redirige sur la doc car je n'arrive pas a le faire fonctionné.

    http://framework.zend.com/manual/fr/...tions.internal
    Ah ah, nous fonctionnons en parallèle ! Je suis aussi tombé là-dessus, mais ça ne fonctionne pas tout à fait comme souhaité : il redirige bien vers mon controller par défaut (IndexController), mais ne fait pas appel au __call et effectue l'action indexAction. Comme s'il n'avait pas propagé l'action, ou autrement dit comme s'il avait fait un _forward('index', 'default').
    C'est dommage, on y est presque.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. [SP-2010] Supprimer les Actions par défaut sur une liste externe
    Par mrkinfo dans le forum SharePoint
    Réponses: 2
    Dernier message: 21/03/2013, 15h36
  2. [phpMyAdmin] Valeur par défaut null pour les types numériques
    Par xianxian620 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 09/12/2008, 15h34
  3. Réponses: 2
    Dernier message: 22/04/2008, 08h59
  4. Action par défaut
    Par nicolas.sitbon dans le forum Struts 1
    Réponses: 34
    Dernier message: 06/03/2008, 15h16
  5. [intput] action par défaut lorsqu'on appuit sur "Enter&
    Par pmartin8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/10/2005, 18h45

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