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

Langage PHP Discussion :

Aide pour MVC


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut Aide pour MVC
    Bonsoir,

    Je suis a la lecture du tutoriel : Le modèle MVC et le contrôleur sous PHP de Julien Poli, j'arrive a la partie FrontController et la c'est la pagaille

    Bon pour commencer, dans le code de la classe Request :

    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
     
    ...
        public function route()
        {
            $requestUri = substr($_SERVER['REQUEST_URI'],
                                 strpos($_SERVER['REQUEST_URI'],'/'.basename(__FILE__)) + 
                                 strlen('/'.basename(__FILE__))
                                );
            if (empty($requestUri)) return array();
     
            $path = parse_url($requestUri, PHP_URL_PATH);
            preg_match('#^(/(?P<module>\w+))(/(?P<action>\w+)/?)?$#', $path, $matches);
     
            $args = explode('&', parse_url($requestUri, PHP_URL_QUERY));
            $matches['args'] = $args;
            return $matches;
        }
    ...
    Est ce que quelqu'un peut expliquer le fonctionnement de cette méthode?

    Merci

  2. #2
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    Bon voila ce que l'ai compris :

    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
     
    	//Analyse de l'url
        public function route()
        {
            //j'ai pas vraient compris mais ca a l'aire d'extraire une sous chaine de l'url!
            $requestUri = substr($_SERVER['REQUEST_URI'],
                                 strpos($_SERVER['REQUEST_URI'],'/'.basename(__FILE__)) + 
                                 strlen('/'.basename(__FILE__))
                                );
            //si l'url est vide on renvoi un tableau vide.                    
            if (empty($requestUri)) return array();
     
            $path = parse_url($requestUri, PHP_URL_PATH);
            //ici on ajoute a $atches le module = monmodule et l'action=monaction
            preg_match('#^(/(?P<module>\w+))(/(?P<action>\w+)/?)?$#', $path, $matches);
            //ici on rempli un tableau par les paraétres passés dans l'url
            $args = explode('&', parse_url($requestUri, PHP_URL_QUERY));
            //on ajoute le tableau d'arguen a notre $matches
            $matches['args'] = $args;
            //on retourne le $atches!!
            return $matches;
        }
    est ce correcte?

    Merci

  3. #3
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Oui c'est à peu près ça.
    Fait un print_r($matches) pour voir ce que contient le tableau.

    Le but de la fonction est de calculer (déterminer) à partir de l'url de la requête les noms du module, de l'action ainsi que les éventuels paramètres (query string)
    Le tout est retourné sous forme de tableau.

  4. #4
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    Merci, mais franchement ce tuto c'est pas la belle vie, je déconseille chaque débutant en MVC comme moi de commencer par le lire.

    faite ce que vous voulez mais pas ca , merci Julien mais il a fallut faire un peut de détailles pour les Débutants en MVC et PHP POO.

    Je dit encore Merci pour ne pas que vous vous fâchez

Discussions similaires

  1. Aide pour mvc 2 et post de formulaire sous IIS 5
    Par worm83 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 23/04/2010, 14h18
  2. Aide pour conception archi MVC
    Par Schulman dans le forum Débuter
    Réponses: 4
    Dernier message: 09/10/2008, 12h39
  3. Réponses: 1
    Dernier message: 08/08/2008, 23h58
  4. MVC besoin d'aide pour comprendre
    Par damien77 dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 26/06/2007, 12h17

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