Aide pour require classe avec namespace

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

je débute la création d'un MVC avec du code maison.

Et j'ai besoin d'aide pour cette function svp :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
/**
* Require et instance d'un model
* @param $model - Classe Model à charger
*/
protected function loadModel($model)
{
    require '../app/models/'.ucfirst($model).'.php';

    return new Models\$model();
}

Mes models sont dans mon Namespace "Models". Donc voila pourquoi je met models devant ma variable $model.

Mais wamp me renvoi cette erreur:

Parse error: syntax error, unexpected '$model' (T_VARIABLE), expecting identifier (T_STRING) in C:\wamp\www\MVC-test\app\Controller.php on line 15

Ma ligne 15 est :

1
2
<?php
return new Models\$model();

Comment résoudre mon problem SVP ?

ps: si je fait ceci:

1
2
<?php
return new Models\Article();

ça fonctionne. Donc le problèm ne vient pas du namespace. ça viens que je ne sais pas comment mettre une variable dans cette ligne pour récupérer un Model dynamiquement.

Merci

Édité par stephweb

+0 -0

Salut !

Je ne suis pas certain qu'il soit possible de construire de cette manière les classes avec des namespaces, mais as-tu tenté de mettre carrément Models\Article dans $model et de faire new $model() ?

Edit

Si j'en crois la documentation (en), il faut effectivement le nom complet, avec le namespace. Sinon, c'est comme si tu tentais d'accéder à une variable de l'espace de noms Model, donc ce n'est pas ce que tu souhaites.

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte