Bonsoir, j'ai un probleme je ne sais pas d'ou sa viens voici mon code:

/* Voici la fonction qui inclut mon model */
function loadModel($name) {
        require_once ROOT."models/".ucfirst($name)."Model.php";
        use Models;
        $this->$name = new $name()\Models;
    }
/*Voici mon model avec le namespace*/
namespace Models
{
    class guest extends Model
    {
        public function login() {
            echo "ok";
        }
    }
}

Voici mon erreur:
Parse error: syntax error, unexpected 'use' (T_USE)

3 réponses


Bonjour il me semble que le use soit être en dehors de la fonction

Ouai, essaie de mettre le bloc avec les use au début de ton code :)

Tu n'as pas à faire de require lorsque tu utilises les namespaces. C'est en fait l'intérêt d'utiliser ce genre de système.

function loadModel($name)
{
        // Il y a certainement d'autres syntaxes possibles...
        $model = "\\Models\\" . ucfirst($name) . "Model.php"; // Je sais pas pourquoi tu as ajouté "Model.php" après, alors que ton modèle s'appel "guest"
        $this->model = new $model(); // Si tu veux initialiser ton modèle en variable d'instance.
}

// ...

namespace Models
{
    class GuestModel extends Model
    {
        public function login() 
        {
            echo "ok";
        }
    }
}

// ou

namespace Models; // C'est pas super logique de mettre Models à la racine, mais bon. :-/

class GuestModel extends Model
{
    public function login() 
    {
        echo "ok";
    }
}