Je suis dans un dilemme sur la meilleure façon de gérer la situation suivante. J'ai un long processus d'inscription sur un site, où il y a environ 10 sections de formulaire à remplir. Certains de ces formulaires concernent spécifiquement l'utilisateur et ses données personnelles, tandis que la plupart concernent les animaux de compagnie de l'utilisateur - ma configuration actuelle gère les formulaires spécifiques à l'utilisateur dans un User_Controller (par exemple, via des méthodes comme utilisateur/profil, utilisateur/ménage, etc.), et de même les formulaires liés à l'animal de compagnie sont traités dans un Pet_Controller (par exemple animal/santé). Si toutes ces méthodes doivent être combinées dans un seul Registration_Controller, je ne suis pas sûr - je suis ouvert à tout conseil à ce sujet.
Quoi qu'il en soit, mon problème principal est que je veux générer une barre de progression qui montre à quelle distance dans le processus d'enregistrement chaque utilisateur est. Comme les urls dans chaque section de formulaire peuvent potentiellement être mappés à différents contrôleurs, j'essaie de trouver un moyen propre d'extraire à quel stade une personne est dans le processus global. Je pourrais juste utiliser la chaîne de requête pour passer un paramètre d'étape avec chaque demande, par exemple user/profile? Stage = 1. Une autre façon de le faire est potentiellement d'utiliser le routage - par exemple, les URL pour chaque section du formulaire pourraient être configurés pour être registration/stage/1, registration/stage/2 - alors je pourrais simplement mapper ces URLs au contrôleur approprié/méthode dans les coulisses.
Si cela a du sens, quelqu'un a-t-il des conseils à me donner?
Bonjour, mes modèles traitent les interactions validation/db. Accepter d'avoir un contrôleur d'inscription - tous les formulaires sont liés, même s'ils interagissent avec différents modèles - d'un point de vue OO, les modèles représentent mes données en tant qu'objets, je n'ai pas besoin de mes contrôleurs pour le faire aussi. Le seul problème est que, outre les formulaires d'inscription, il y aura également des formulaires en cours qui seront similaires. Cela peut impliquer une certaine duplication du code, mais la flexibilité de séparer les formulaires en cours des formulaires d'enregistrement en différents contrôleurs sera bénéfique - est-ce logique? – chrisj
Oui, les formulaires peuvent être un problème. Selon votre cadre, vous pourriez être en mesure de bien factoriser les choses. J'utilise Zend_Form assez souvent, ce qui est bien, car vous pouvez utiliser la composition pour modifier les choses au besoin. Vous avez donc une classe de formulaire qui représente la forme dans son état "naturel", mais si vous avez besoin d'une version spéciale, installez simplement la forme "naturelle", puis ajoutez/supprimez/changez les bits de celle-ci. Si vos formulaires sont simplement HTML dans des modèles, vous finirez probablement par vous répéter. Vous pouvez essayer d'être intelligent à ce sujet, mais le faire "bien" dépend de votre cadre – timdev