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 :

Récupérer le nom de la vue


Sujet :

MVC PHP

  1. #1
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut Récupérer le nom de la vue
    Bonjour,

    je souhaiterais récupérer la vue dans laquel je me situe. J'ai vu les méthodes pour récupérer une action, un controleur mais pas pour la vue.

    Merci pour vos réponses

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    Peux-tu être plus clair dans ta question, merci.

  3. #3
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Yes! autant pour moi.

    Alors, on voit ici que l'on peut récupérer un module, un controleur, une action:
    http://zend-framework.developpez.com...ontroller-noms

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $this->view->module = $this->getRequest()->getModuleName(); 
    // recupere le module
    $this->view->controller = $this->getRequest()->getControllerName(); 
    // recupere le controller
    $this->view->action = $this->getRequest()->getActionName(); 
    // recupere l'action
    Moi, je voudrais récupérer le nom dans la vue dans laquelle je me situe, si c'est possible.

    Par exemple, tu as un lien :

    http://localhost/zendf/public/index/contact

    Je voudrais récuperer 'contact'. Un peu dans ce style la $_SERVER['REQUEST_URI'] mais sans toute l'url.

    J'espère avoir été clair, sinon dis le moi!

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bien si tu utilise le MVC, ton fichier est une concaténation des trois ékléménts situé ci-dessus + l'extension .phtml.

    Sinon il y a __FILE__

  5. #5
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Oui, j'utilise le MVC(je débute).

    Ces 3 méthodes me retournent respectivement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    echo $this->module.'<br>'; //retourne : default	
     
    echo $this->controller.'<br>'; //retourne : index
     
    echo $this->action.'<br>'; //retourne : chemin

    Mais j'arrive pas récupérer le nom de la vue dans laquelle je me situe.

    La variable $_SERVER['REQUEST_URI'], si je me situe

    sur ma page 'contact' , je récupère :/zendf/public/index/contact

    sur ma page portefolio ca sera /zendf/public/index/portefolio

    etc...

    Je pourrais aller chercher ma vue directement dans cette url, mais je me dis qu'il doit avoir quelque chose de plus agréable, que de faire du bidouillage

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Je suis pas sur, puisque ta vue doit porter le nom de ton Action.

  7. #7
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    pas sur de quoi?

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par miya Voir le message
    pas sur de quoi?
    de ça

    je me dis qu'il doit avoir quelque chose de plus agréable, que de faire du bidouillage

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Bonjour miya,

    Y une toute petite chose que je voudrais comprendre, en plus du but que je ne comprends bien.
    Par défaut, le nom de la vue dans laquelle tu trouves est le nom de l'action (+.phtml) du contrioller dans le dossier qui prote le nom du controller.
    Donc tu as le nom de la vue avec le nom de l'action, à mon que tu fasses un render() dans ton controller et alors c'est toi qui a choisi abitrairement choisi une vue dont tu dois aussi connaître le nom...

    Dis moi si j'ai raté un épisode.

    A+,
    Olivier

  10. #10
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    En faite le but de tout ca c'est de créer mon chemin de fer. Donc pour cela, je dois savoir dans quelle vue je me situe, et je remonte à ces parents. Dans un nouveau post, je posterai dans la journée l'ensemble du code, pour savoir ce qu'en pense le forum.

    vous me donnerez vos avis

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    myia,

    Juste par curiosité, j'ai un peu regardé la doc pour voir de quelle manière tu pourrais récupérer le script de vue.
    Voici les 2 solutions que j'ai trouvé :

    1. Dans l'action de ton controller, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public monAction() {
      ...
      // Ici tu passe le chemin de ton script de vue à la variable currentScript
      $this->view->currentScript = $this->getViewScript();
    }
    Attention, ici tu auras le chemin començant par le repertoire du controller, pas ce qui vient avant


    2. Dans ta vue si tu as le nom de l'action (dans un variable 'action' par ex.), tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...
    <?= $this->getScriptPath($this->action) ?>
    Attention ici, tu ne verras le chemin complet jusqu'au répertoire qui contient le script. Mais pas le nom du script lui-même. En même temps tu sais que le nom du script lui-même, c'est : $this->action.'.phtml'.

    Voilà, je suis quand toujours curieux de savoir pourquoi tu as besoin de ceci.
    Il doit avoir une meilleure manière d'atteindre ton but.
    Expose nous le problème de fond.

    PS: Une bonne manière de savoir quelles sont les methodes dont tu disposes par classe, c'est de consulter : http://framework.zend.com/apidoc/core/

  12. #12
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Merci pour ta réponse. Mais sans succès avec ces méthodes.

    J'ai résolu mon problème avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $vue = basename($_SERVER['REQUEST_URI']);
    Merci pour le lien apidoc! je ne le connaissais pas!

    La suite du post, c'est ici :
    http://www.developpez.net/forums/d65...on-chemin-fer/

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

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Récupérer les noms des vues sous Oracle
    Par Remedy dans le forum SQL
    Réponses: 10
    Dernier message: 07/12/2007, 18h22
  3. Réponses: 10
    Dernier message: 21/02/2007, 20h16
  4. Récupérer le nom de l'utilisateur sous linux
    Par Michaël dans le forum POSIX
    Réponses: 7
    Dernier message: 25/12/2003, 21h38
  5. Récupérer le nom de la machine locale
    Par Jflgb dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/05/2003, 09h25

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