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 :

[POO] MVC : Instanciation d'une classe dont le nom est dynamique


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2003
    Messages : 73
    Points : 60
    Points
    60
    Par défaut [POO] MVC : Instanciation d'une classe dont le nom est dynamique
    Bonjour,

    Je suis en train de suivre le tutorial de Julien Pauli sur le développement en MVC avec PHP :
    http://julien-pauli.developpez.com/t...vc-controleur/

    Or je bloque sur la méthode process de la classe ActionController :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static function process(Request $request, Response $response)
    	{
    		if (!file_exists($path = 'controllers/' . $request->getParam('controller') .'.php')){
    			throw contrôleurIntrouvableException ('contrôleur introuvable');
    		}
    		require_once($path);
    		$class = $request->getParam('controller') . 'Controller';
    		$controller = new $class($request, $response);
    		return $controller->launch();
    	}
    D'après ce que je comprends de la partie en gras, on récupère le nom d'une classe lié au controleur appelé puis on tente de l'instancié.

    Est ce que j'ai bien compris le processus ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut sécurité
    Il y a surtout une bonne faille de sécurité avec la variable dans le require().
    Business, Stratégie, Leadership
    Toujours à l'écoute du marché : Surtout en Suisse ! ;-)

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    Citation Envoyé par david drapeau Voir le message
    Il y a surtout une bonne faille de sécurité avec la variable dans le require().
    il s'agit du code d'exemple fourni dans le tutoriel

    Citation Envoyé par castaka Voir le message
    D'après ce que je comprends de la partie en gras, on récupère le nom d'une classe lié au controleur appelé puis on tente de l'instancié.

    Est ce que j'ai bien compris le processus ?
    oui c'est ça

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

Discussions similaires

  1. Instancier une classe dont le nom est contenu dans une String
    Par fyque dans le forum Général Python
    Réponses: 15
    Dernier message: 13/06/2008, 12h33
  2. Select d'une table dont le nom est dynamique
    Par newfsch dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/07/2007, 12h09
  3. Instancier une classe dont le nom est une variable
    Par bendev dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2006, 06h01
  4. Réponses: 3
    Dernier message: 05/10/2006, 18h52
  5. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

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