Verder nog commentaren? Wil er zoveel mogelijk van opsteken dus gooi alles er maar in :)
En Raoul, ik vind exceptions altijd heel vervelend om te lezen. Daarnaast kan een exception maar 1 error bevatten. Deze methode meerdere, is dat niet handiger?
Dit is geen OOP. Dat maakt niks uit, want het duurt een tijd voordat je het OO concept onder de knie hebt.
Wat je hier hebt gedaan is gewoon 1 klasse gemaakt en die gebruikt om alle functies te bundelen. Een leuke manier van programmeren en totaal niet fout, maar geen OO.
In OO gaat het erom dat je zoveel mogelijk alle verantwoordelijkheden spreid over objecten. Een van de belangrijkste principes is het Single Responsibility Principle: Een object mag maar 1 rede hebben om te veranderen. In jouw object zijn er meerdere redenen om hem te willen veranderen:
- als we de HTML veranderen (de "presentatie" laag)
- als we een nieuw field type willen toevoegen
- als we ipv $_POST bijv. $_GET willen gebruiken (gebruik nooit superglobals in OO objecten)
- als we het AJAX script willen veranderen (of helemaal geen AJAX willen gebruiken)
Al deze redenen krijgen een eigen klasse. Je krijgt dan verschillende FormType klassen, een FormRenderer/FormView klasse, een FormRequest klasse, een FormBuilder klasse, een Form klasse, etc.
Dat lijkt weer meer op procedural dan oop en dat wordt hierboven niet bedoelt.
Geen if-else, maar meerdere klasses die hun eigen verantwoordelijk hebben.
Kijk eens naar andere OOP scripts, bijv een twitter api
>> Geen if-else, maar meerdere klasses die hun eigen verantwoordelijk hebben.
OOp mag ook IF elsejes hebben... En daarnaast hebben we hier meerdere klassen met hun eigen verantwoordelijkheid...
Als laatst zou ik jouw twitter api voorbeeld ook geen OO willen noemen...