login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[mvc] Juiste oplossing?

Offline OceanIdiot - 12/09/2010 12:13 (laatste wijziging 12/09/2010 12:14)
Avatar van OceanIdiotNieuw lid Hoihoi

Ik heb een mvc-frameworkje geschreven als basis voor een site. De 'normale' controllers gebruik ik voor de content, bijvoorbeeld de indexController zorgt er voor dat alle artikelen die in de database waarde 1 hebben in de kolom "index" worden weer gegeven. Ik ben er eigenlijk vrij zeker van dat dit juist is. Maar van het volgende niet:

Dingen die op nagenoeg elke pagina moeten worden weer gegeven (denk aan menu's e.d.) kun je in elke controller opnieuw schrijven (duplicate code) of je maakt een soort van front controller aan. Dat laatste heb ik dus gedaan. Deze bevat een functie om het menu weer tegeven. Het enige wat je hoeft te doen is in de 'normale' controller deze functie aanroepen.

De menu code bestaat uit +- 15 regels, dus dat scheelt telkens toch, maar past deze werkwijze in het mvc pattern? Zo nee, hoe moet ik het dan wél oplossen?

Greetings,
OI

2 antwoorden

Gesponsorde links
Offline marten - 12/09/2010 14:12
Avatar van marten Beheerder Je kan voor een menu ook een controller maken. Je zou ook een helper ervan kunnen maken.

  1. interface Menu {
  2. public function create();
  3. public function update();
  4. public function delete();
  5. public function read();
  6. }
  7.  
  8. class menuController implements Menu {
  9. public function create(/.../);
  10. public function update(/.../);
  11. public function delete(/.../);
  12. public function read(/.../);
  13. }
  14.  
  15. class menuHorizontal extends menuController {
  16. public function read(
  17. // Hier een functie welke hij horizontaal terug stuurt
  18. )
  19. }
  20.  
  21. class menuVertical extends menuController {
  22. public function read(
  23. // Hier een functie welke hij verticaal terug stuurt
  24. )
  25. }


Bovenstaand zou een voorbeeld kunnen zijn van een menu module
Offline Wijnand - 14/09/2010 11:45
Avatar van Wijnand Moderator Je kan inderdaad in je (main)view op de plek waar je iets wilt hebben een controller aanroepen (of een helper-method maken die dit doet). Dan kun je daarin de controller aanroepen, met de juiste waarden en ben je dus klaar. Die controller regelt dan de rest voor je.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.172s