Question

Juste une petite question au sujet des meilleures pratiques dans le développement MVC.

Disons que j'ai deux contrôleurs (cont1, cont2), dont chacun utilise un modèle distinct, modèle1 et model2.

tous les fichiers sont complexes, les modèles contiennent des dizaines de méthodes.

Dis, je fini de développer du premier contrôleur et je suis au milieu de travail sur le second. Je dois créer une méthode dans model2 qui sera exactement le même que l'une des méthodes modèle1. Il est seulement une méthode minuscule, pour obtenir, par exemple, une liste de catégories de quelque sorte.

Quelle est la meilleure approche du travail - dois-je dupliquer la méthode et l'inclure dans mon model2, ou devrais-je le récupérer à partir modèle1?

La chose raisonnable à faire serait de l'obtenir de modèle1, mais je ne sais pas si cela aurait une incidence sur le temps d'exécution, comme il devrait charger les deux modèles ..

Je vous serais reconnaissant de quelques commentaires

merci k

Était-ce utile?

La solution

Le chargement d'un deuxième modèle ne sera pas avoir un impact notable sur le temps d'exécution. Ceci est probablement le chemin à parcourir.

En outre, chaque modèle doit encapsuler une logique de données pour un « objet » spécifique. Vous pouvez penser à chaque modèle presque comme une table de base de données. Donc, vous ne voulez pas vraiment sans doute d'avoir la même méthode en deux endroits différents -. Et si vous le faites, vous voudrez peut-être envisager la création d'un plug-in

Autres conseils

Peut-être ce que vous avez vraiment besoin est un troisième modèle. Si vous avez une méthode qui est utilisée dans de nombreux / tous vos modèles, il peut vraiment être un ensemble de données unique qui justifieraient sa propre attention. En outre, vous éviter d'avoir à charger plusieurs modèles « grands », et ont plutôt 1 grand et 1 petit modèle.

J'ai couru dans la même situation. Ce que je fais est de charger l'objet CodeIgniter par référence dans tous les modèles . Ensuite, je peux charger d'autres modèles, les bibliothèques, les aides, même des articles config dans mes modèles. Il aide à garder le code du modèle de contrôleur, et je considérerais une meilleure pratique. Gardez toujours à sec (Do not Repeat Yourself).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top