login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[MVC] Iffen in Views en Forms

Offline xSc - 15/08/2011 09:48
Avatar van xScOnbekend Oke, je werkt volgens Model - Controller - View;

Je hebt een form gemaakt met bijv. Zend_Form. Is het toegestaan (volgende het model MVC) om if-jes te gebruiken in de forms en views? Hoe los je het anders op als je bijv. een formulier hebt, maar in een bepaalde situatie toch iets anders moet doen?

4 antwoorden

Gesponsorde links
Offline Stijn - 15/08/2011 11:36
Avatar van Stijn PHP expert
Citaat:
Is het toegestaan (volgende het model MVC) om if-jes te gebruiken in de forms en views?
Ja. MVC vertelt niet of je if's mag gebruiken of niet. Je kan natuurlijk ook een standaard form maken en dan bv subklassen naar de uiteindelijke forms. Dat zou beter zijn.
Offline xSc - 15/08/2011 11:45
Avatar van xSc Onbekend Oke, maar het gaat dan om de verantwoordelijkheden.

Stel zo:

Ik heb een formulier met 10 velden. Voor 2 situaties is dit formulier exact hetzelfde, alleen 1 veld (bijv. een select) moet andere opties hebben of een ander label. Dat is het natuurlijk jammer om 2 formulieren te maken met dat ene verschil ...

Aan de andere kant denk ik dat een form of view geen echte logica moet bevatten, maar dat dat meer een verantwoordelijkheid is van de controller.
Offline MiST - 16/08/2011 11:57 (laatste wijziging 16/08/2011 12:02)
Avatar van MiST Lid MVC is geen doctrine, MVC is een filosofie. Ze stelt dat de beste structuur bestaat uit Model, View en Controller.

* Het Model bevat de data,
* De View geeft deze data weer op het scherm
* De Controller manipuleert deze data op basis van gebruikersinvoer.

Nu over je formulieren.

Een formulier is noch een model, noch een view, noch een controller, maar als je het ERGENS moet plaatsen is het wat mij betreft eerder een View. Zeker in het geval van Zend_Form... Dit is niet bepaald zo'n losgekoppelde component, maar dit geheel terzijde.

Wat je dus best doet is een (eventueel abstracte) superklasse maken van je formulier. Daarna maak je nog concrete subklassen met bepaalde getters en setters en andere methodes die garanderen dat je formulier op de juiste manier gebruikt wordt. Op die manier heb je misschien niet de minste klassen, maar wel de meest elegante manier (en meest uitbreidbare en meest gebruikersvriendelijke manier) om jouw dilemma op te lossen ;)
Bedankt door: Abbas
Offline xSc - 16/08/2011 14:10
Avatar van xSc Onbekend MiST, bedankt voor je zeer uitgebreide, deftige antwoord. Ik zal ernaar kijken.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.181s