[POO] Passage de variable du controleur à la vue
Bonjour à tous ...
je suis en train de développer une appli et je m'inspire (TRÈS !!!) librement du modèle MVC.
Donc en gros l'arborescence de mon site :
Code:
1 2 3 4 5 6 7
|
./
-- control1
-- control2
-- Vues/
-- -- -- vue1
-- -- -- vue2 |
dans un fichier de config (que je require_once à chaque début de contrôleur) j'ai écrit 2 fonctions pour me gérer ma navigation entre fichiers
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
function afficheVue($vue)
{
if( file_exists (ROOT . 'vues/'. $vue . '.php'))
{
require_once ROOT . 'vues/'. $vue . '.php';
}
// mettre une erreur
}
function redirect($controleur)
{
if( file_exists (ROOT . $controleur . '.php'))
{
require_once ROOT . $controleur . '.php';
}
// mettre une erreur
}
NB la constante ROOT est bonne ! |
donc au final dans mes controleur j'ai un code qui ressemble à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
$user = new AccesBase();
$user->login = $user->safe($_POST['zt_log']);
$user->pass = $user->safe($_POST['zt_mdp']);
if($user->login() == true)
{
afficheVue('accueil');
}
else
{
redirect('index');
} |
l'objet user existe sans problème ... et lorsque j'affiche ma vue avec ça dedans :
Code:
Vous êtes <?php echo $user->login ?>
on me renvoi l'erreur :
Citation:
Notice: Undefined variable: user in C:\dev\bileo\vues\accueil.php on line 3
Notice: Trying to get property of non-object in C:\dev\bileo\vues\accueil.php on line 3
alors, étant donné que ça marche sans problème avec le require_once dans le code ( afficheVue('accueil') ==> require_once('vues/accueil.php") )... je voudrais savoir si c'est que je tente de faire qqch d'impossible ?