Commentaires
Arthur, l'apprenti développeurOn va enfin faire notre premier contrôleur !

Et bien non...

Arthur, l'apprenti développeurMais tu viens de me dire qu'on allait faire un contrôleur de base?

Oui, mais ce n'est pas notre premier contrôleur. C'est un contrôleur générique, qui possédera des propriétés et méthodes de base qui seront utiles pour tout nos contrôleurs par la suite.

Arthur, l'apprenti développeurAh on va utiliser l'héritage

Tout à fait, dans un premier temps, on va réfléchir à ce qui pourrait nous être utile dans tous nos contrôleur. Rappelle moi à quoi sert à contrôleur?

Arthur, l'apprenti développeurA contrôler l'application !

Oui, mais tu pourrais me donner un peu plus de détails sur ce qu'il va faire généralement?

Arthur, l'apprenti développeurSi je me souviens bien, il va appeler des modèles pour récupérer des données, et ensuite les envoyer à une vue?

Oui, et de quoi peut avoir besoin une vue pour s'afficher correctement?

Arthur, l'apprenti développeurDe paramètres?

Effectivement des paramètres peuvent être utile, et un nom est indispensable ! Commence donc par créer une classe BaseController, prévois une propriété param et deux méthodes :

  • View : pour affichier une vue, attention à bien penser aux paramètres à lui passer !

  • bindManager : pour gérer les manager d'accès aux données que le contrôleur pourra utiliser.



Arthur, l'apprenti développeurMais on a pas déjà les param dans notre HttpRequest?

Si, et d'ailleurs ça peut être utile de les récupérer dans le contrôleur. Voir même de récupérer notre HttpRequest complète, ça pourra servir. Mais pour répondre à ta question, tous les paramètres que nous avons binder dans HttpRequest ne seront pas nécessairement utile à la vue, certain ne seront peut être nécessaire que pour le contrôleur.

Arthur, l'apprenti développeurOk je vais faire ça, et si j'ai bien compris j'ajoute aussi une propriété HttpRequest et je la passe en paramètre du constructeur

Tu as tout compris.

{"language":"application/x-httpd-php","content":"<?php\n\tclass BaseController\n\t{\n\t\tprivate $_httpRequest;\n\t\tprivate $_param;\n\t\t\n\t\tpublic function __construct($httpRequest)\n\t\t{\n\t\t\t$this->_httpRequest = $httpRequest;\n\t\t}\n\t\t\n\t\tpublic function view($filename, $param)\n\t\t{\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic function bindManager()\n\t\t{\n\t\t\t\n\t\t}\n\t}","filename":"BaseController.php"}


C'est presque ça, en fait on va se servir de la variable param du baseController pour envoyer ces param à la vue, et étant donné que la vue est une méthode du baseController, tu n'as pas besoin de lui passer en paramètre, il seront déjà accessible dans la méthode avec $this->_param

Arthur, l'apprenti développeurAh oui, je n'y avais pas pensé

{"language":"application/x-httpd-php","content":"<?php\n\tclass BaseController\n\t{\n\t\tprivate $_httpRequest;\n\t\tprivate $_param;\n\t\t\n\t\tpublic function __construct($httpRequest)\n\t\t{\n\t\t\t$this->_httpRequest = $httpRequest;\n\t\t}\n\t\t\n\t\tpublic function view($filename)\n\t\t{\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic function bindManager()\n\t\t{\n\t\t\t\n\t\t}\n\t}","filename":"BaseController.php"}


Arthur, l'apprenti développeurEt maintenant je fais quoi?

Tu veux commencer par quelle méthode, view ou bindManager?

Arthur, l'apprenti développeurView d'abord, je ne comprend pas du tout bindManager pour le moment, on verra après. J'ai terminé cette partie
Demander de l'assistance