JeuWeb - Crée ton jeu par navigateur
Comment les frameworks passent les arguments au controleur ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comment les frameworks passent les arguments au controleur ? (/showthread.php?tid=5289)



Comment les frameworks passent les arguments au controleur ? - srm - 01-03-2011

Certains framework passe les arguments de l'url directement dans la méthode du controleur.

Par exemple pour l'url /game/{name} ils font : public function game($name) {
D'autre pour le même exemple font : public function game() {
Et ensuite tu récupères $name dans un tableau par exemple $params['name'].

Selon vous quelle est le meilleure méthode et pourquoi ?


RE: Comment les frameworks passent les arguments au controleur ? - niahoo - 01-03-2011

perso j'adore les constructeurs hiérarchiques. donc pour moi ce serait
game($name)

mais la pluspart des aplis que j'utilise fonctionnent avec des règles de 'dispatch'

par exemple avec une règle en pseudocode:
{myDispatchRule, "game"/name/"presentation", resource_game_prensenter, [...]}
le controlleur resource_game_presenter reçoit entre autres un tableau de paramètres, avec name dedans.


RE: Comment les frameworks passent les arguments au controleur ? - Sephi-Chan - 02-03-2011

Je préfère avoir un fichier de routes car ça permet de visualiser rapidement les routes disponibles dans l'application. De plus, dans le cas d'une hiérarchie, on peut facilement définir des scopes/namespace. C'est également très pratique pour les routes internationalisées (ou simplement porteuses de la locale).

Sephi-Chan, qui n'a plus le net... Sad


RE: Comment les frameworks passent les arguments au controleur ? - ThErOr - 11-03-2011

Perso je préfère la méthode non déclarative, le fait de mettre les paramètres dans la déclaration de la méthode contrôleur est moins souple pour la gestion des valeurs par défaut.
Quand tu as besoin de faire évoluer ta méthode en ajoutant des paramètres il suffit de gérer les valeurs par défaut dans le corps de la méthode et tous les endroits ou elle est appelée / utilisée sont automatiquement gérés.
Dans le cas contraire tu peux avoir à revenir sur tes appels pour ajouter / gérer les nouveaux paramètres.

Je pense que cette méthode ne doit être utilisée que dans ce cas précis des actions contrôleur, car elle peut entraîner des conception bien pourries pour les autres usages de l'application.