0

Il s'agit d'une question sur l'architecture d'application web MVC, et comment elle peut être étendue pour gérer des unités de fonctionnalité modérément complexes. Je possède une application Web de style MVC avec une page de facturation de carte de crédit pour le client.Composant de fonctionnalités complexes dans une application Web MVC

On m'a demandé d'autoriser les admins à entrer également les paiements par carte de crédit, pour les périodes où les cartes de crédit sont prises par téléphone.

La section de facturation de carte de crédit du client du site Web est actuellement son propre contrôleur, avec environ 3 pages et un login. Ce contrôleur est responsable de:

  • authentification des informations d'identification de connexion client
  • collecte de données de carte de crédit
  • L'appel d'une bibliothèque pour faire la charge réelle.
  • en rapportant les résultats à l'utilisateur.

Je voudrais extraire les pages de collecte de données de carte dans un composant de une sorte pour que je puisse facilement réutiliser le code sur le côté admin de l'application.

À l'heure actuelle, mes composants sont limités à des pages «vues» uniques avec le code Perl de style PHP.

Ceci est un framework MVC simple et personnalisé écrit en Perl. À l'heure actuelle, les contrôleurs sont appelés directement depuis l'infrastructure pour traiter les demandes Web. Mon idée est de permettre aux contrôleurs d'être appelés à partir d'autres contrôleurs, de sorte que je peux composer des fonctionnalités plus complexes. Pour simplifier, je pense que je préfère la composition à l'héritage, même s'il faudra écrire un tas de méthodes passives (actions). Étant Perl, je pourrais dans la théorie faire l'héritage multiple. Je me demande si quelqu'un avec de l'expérience dans d'autres frameworks web MVC peut commenter sur la façon dont ce genre de chose est habituellement fait.

Merci.

Répondre

1

Créez un composant (classe?) Qui enveloppe toutes les fonctionnalités spécifiques cc et l'expose à travers des méthodes/fonctions appropriées.

Utilisez la composition pour fournir à vos contrôleurs, client et administrateur, une instance du composant cc et appelez les méthodes appropriées pour réaliser ce qui doit se passer.

J'ai traité quelque chose de similaire plusieurs fois, et je préfère absolument garder mes "contrôleurs" (ou tout autre code qui dépend directement des bibliothèques tierces d'ailleurs) aussi "stupide" que possible, et faites comme vous l'avez dit - passer à travers tout ce qui nécessite des fonctionnalités spécifiques à votre application. Cela permet de garder mon code facile à tester, ce qui est le moteur de la plupart de mes créations de nos jours.

J'espère que nous parlons des mêmes choses, MVC peut être appliqué à tant de niveaux différents, il devient parfois confus.

+0

Je pense que nous parlons de la même chose, bien qu'il ne soit pas clair que je veux inclure l'interface HTML dans le composant, c'est pourquoi je parle en termes de contrôleurs (et de leurs vues) et pas seulement -end classes de travailleurs. – NXT

Questions connexes