Structurer les Contrôleurs
Bonjour à tous,
J'ai commencé à étudier Codeigniter. Je cherche la meilleure manière de structurer une application. Tout semble tourner autour d'un super contrôleur qui contient tous les objets et gère tout... Les tutoriels et exemples Codeigniter que j'ai trouvés proposent la manière suivante:
- Un contrôleur est appelé au lancement de l'adresse dans le browser
- Il affiche une vue, ou plusieurs suivant les circonstances
- Et va chercher des données par l'intermédiaire des méthodes
Je me demande quand et comment passer au contrôleur suivant et je ne vois pas comment le faire élégamment.
Faut-il l'appeler à partir du contrôleur courant? Ou d'un lien dans la vue?
Par exemple, après avoir réussi le login et la connexion DB, je voudrais me retrouver dans un nouveau contrôleur.
Bref, comment structurer correctement les contrôleurs? Quand faut-il en créer une nouveau? Quand et comment passer de l'un à l'autre?
Quelqu'un pourrait-il m'éclairer?
Merci d'avance.
Codeigniter - Structurer les Controleurs - La Suite
En réfléchissant et en dormant un peu, j'ai trouvé une réponse. (Si vous en avez d'autres...)
Pour ce qui est d'appeler les contrôleurs, ça se fait naturellement par les vues. Les points du menu de navigation appelle les liens contrôleur/méthode. On pourrait structurer en créant un contrôleur par point de menu et une méthode par point de sous-menu. Ou, si l'application est plus conséquente, un contrôleur pour chaque item.
Reste la question de comment faire après le login. Dans les exemples que j'ai trouvé, une fois le login réussi, le contrôleur appelle une vue qui sera probablement la page principale du programme.
Code:
1 2 3 4 5
| // si le login a réussi...
// ... peu importe le test
{
// ouverture de la vue principale
$this->load->view('main_view'); |
Mais l'adresse est toujours la même. Si je recharge la page, soit je retrouve la page de login, soit je dois faire un test, etc... Je pense que c'est plus joli de passer à un nouveau contrôleur. J'ai trouvé ceci :
Code:
1 2 3 4 5 6
| // si le login a réussi...
// ... peu importe le test
{
// ouverture du contrôleur principal, méthode par défaut
header('Location: main_controller', FALSE, 302);
die(); // ou exit; ??? |
A ce propos, ça me ferait plaisir d'avoir votre avis.
Merci
Remarque: On peut remplacer header() par la fonction redirect() de url_helper.php. Mais je n'ai pas réussi à la faire fonctionner.