Nu wil ik dit uitbreiden met een database, maar wil ik de sql scheiden uit de controller (model). Hoe moet nu bijvoorbeeld een indexModel.class.php er uit zien?
Je model is meer een naam om een deel van je code aan te geven. Alle code die je gebruikt om in essentie te doen wat je wilt doen is je model. Alle code die daaromheen nodig is, zoals het afhandelen van forms, het genereren van queries, het omzetten van forumposts in HTML, is dat niet. Je model is je business logic, en eigenlijk dat wat je hele applicatie zou zijn als je direct PHP code zou kunnen lezen en uitvoeren en geen website eromheen nodig zou hebben.
Dus je hebt geen indexModel, omdat index een onderdeel is van het weergeven, en niet van dat wat je wilt weergeven.
Bij een gastenboek bestaat je model bijvoorbeeld uit een class Bericht, en een class Berichten_Store. Dit zijn de enige twee classes die beschrijven hoe daadwerkelijk berichten in het gastenboek komen, en hoe die berichten eruit zien.
Nee dit is écht geen vacature =). Ik zou graag willen weten hoe ik zo'n pattern uit zou moeten breiden. Er is alleen een database class gegeven, maar niet het gebruik daarvan. Nu zou ik de sql-code gescheiden willen hebben (een Model), maar ik weet niet precies hoe ik dit aan zou moeten pakken.
De queries naar je database voer je op een plek uit, de queries voor het opslaan en ophalen van berichten voer je allemaal uit in je Berichten_Store. Als je Berichten_Store bijvoorbeeld een method getAll() heeft voert deze method de query uit en returnt vervolgens en ArrayObject of een gewone array van Bericht objecten
De queries naar je database voer je op een plek uit, de queries voor het opslaan en ophalen van berichten voer je allemaal uit in je Berichten_Store. Als je Berichten_Store bijvoorbeeld een method getAll() heeft voert deze method de query uit en returnt vervolgens en ArrayObject of een gewone array van Bericht objecten
Maar de Berichten_Store kan dus wel een query (naar de database) uitvoeren?
Ja. Bericht kan niet een query uitvoeren, want dat is voor bericht niet een verantwoordelijkheid. Berichten_Store heeft een database-verbinding nodig om te kunnen werken, want berichten opslaan en ophalen is wel zijn verantwoordelijkheid.
Hoe zou ik dat script verder moeten gebruiken wanneer ik bijvoorbeeld, het simpelste voorbeeld dat er zo'n beetje bestaat, een nieuwssysteem wil maken?
Kijk even in de OOP categorie van dit forum (zolang die nog bestaat) want daar staan tal van topics in waarin in en anderen uitgebreid voorbeelden geven. Zeker van de afgelopen twee weken.