salut,
ce que tu indiques est inhérent à php, qui ne garde pas de chose en mémoire une fois code terminé (contrairement à java, par exemple, qui a sa jvm de montée en mémoire et contiendra la mécanique de ton MVC en mémoire).
Dans le cas de PHP il faut tout recréer à chaque appel. Si tu as besoin de garder des données utilisateurs il faut utiliser les sessions.
Le modèle c'est l'image de la bdd donc si tu "sauvegarde des choses dans le modèle" c'est une sauvegarde en base donc il n'y a pas de problème à les réemployer (sauf si tu as des transactions, sans commmit automatique et que tu ne commit pas explicitement (ce n'est pas la conf généralement utilisées).
Pour chaque requête il faut que tu ais (généralement dans l'url) l'information du routage.
je te conseil d'utiliser l'url rewriting pour cela.
par exemple
[*]
http://tonsite.com/login => route pour la connexion
[*]
http://tonsite.com/profil => route pour afficher le profile
coté ré écriture d'url tu redirige le tout vers l'index => index.php?action=$1
tu as ainsi toujours l'infos pour le routeur et donc démarrer le contrôleur.
Si dans tous cela il y a besoin d'information lié à l'utilisateur il faut utiliser les sessions. (en gros user_id, acl).
dans le cas que tu sites (je prend le cas du formulaire de connexion)
<form method="post" action="/authenticate">
</form>
la régle de réécriture
RewriteRule "/(.+)" "/index.php?action=$1" [QSA]
la doc du mode rewrite :
http://httpd.apache.org/docs/current/mo ... write.html
dans index.php tu vérifies crée le routeur (factory et méthode statique) auquel tu passes le contenu de $_GET['action'] (si existe sinon une chaîne vide).
dans le routeur le plus propre étant une chaîne de commandement (plutôt qu'un gros switch ou série de if / else if /else). Je te laisse demander à google si tu ne connais pas ce "design pattern"
Le contrôleur sais ce qu'il doit faire (utiliser $_GET / $_POST pour traiter le formulaire, utiliser la session etc.).
Si c'est ce que tu as fait, alors tu as fait "ce qu'il fallait" tu n'as pas beaucoup d'autre solution.
Le chargement des objets routeur, contrôleur ou vue ne sont pas super coûteux comparé à ce que tu leur demandes de faire (connexion à la base de données requêtes plus ou moins complexe, envoie de mail, connexion ftp ou autre et gérération du html voir utilisation et parse de template html).
Si tu as vraiment besoin d'un quelconque état il faut utiliser les sessions (je te déconseille la sérialisation des objets en session, c'est coûteux et généralement peu utile).
@+
Il en faut peu pour être heureux ......