Aide pour require classe avec namespace

Le problème exposé dans ce sujet a été résolu.

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

+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.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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