OOP in combinatie met database
Het MVC model goed beheersen is zeker een van de dingen die ervoor zorgen dat je OOP beter beheerst en dan niet alleen om programma's te maken met MVC, maar ook om objecten beter in te schatten.
Vroeger schreef men alle code achter elkaar. Procedureel programmeren noemt men dat als ik me niet vergis. Men schreef als het ware 1 groot bestand. Doe dit, include deze file, start de sessie, controleer of een gebruiker is ingelogd, nee dan toon het inlogformulier, ja dan ga verder en kijk welke url is aangeroepen. Is url a aangeroepen dan doe dit, is url a niet aangeroepen kijk dan of url b is aangeroepen... enz. enz. Al die code stond achter elkaar. OOP, Object georienteerd programmeren, werkt met objecten (classes) die met elkaar kunnen praten waardoor code overzichtelijker wordt en dezelfde code kan worden hergebruikt.
MVC is een design pattern (vergeet die term). Het wil zeggen dat je je code opsplitst in controllers, models en views. Jij typt een url in in je browser. Deze wordt opgevangen door een (zelfgeprogrammeerde) router. Stel de url is www.mijnsite.nl/auto. De router vangt het stukje "auto" op en zoekt vervolgens welke actie (bijv. toonAuto) daarbij hoort. Deze actie vind je terug in een controller. Dit is gewoon een php bestand, bijvoorbeeld "autoController.php". In de controller staat dan de actie / functie toonAuto(). Deze functie haalt uit het model (een ander php bestandje bijv. automodel.php) informatie op en stuurt deze informatie (bijv. een array met daarin 'merk', 'type' en 'kleur') naar de view (ook weer een php bestandje). In de view staat dan alleen maar html en gebruik je de gegevens uit de array.
Bijv.
Op deze manier houdt je op een overzichtelijke manier je code / intelligentie (controller / model) gescheiden van je lay-out (view).
Hoop dat het zo wat duidelijker voor je is.
Gewijzigd op 09/01/2012 20:02:24 door Ozzie PHP
Ja ozzie, dat begreep ik al. :) Ik heb controllers views en moddels leren kennen via codeIgniter.
Over de rest, volg het topic waarschijnlijk niet helemaal, maar een boilerplate MVC is de bedoeling? Dus MVC + PDO + routing? Op zich een leuke combinatie, ben wel nieuwsgierig wie hier mee op de proppen komt. Ik las ook iets over ORM? Is dat niet iets te ingewikkeld voor een boilerplate MVC? Misschien dat je dan beter eens kunt kijken naar de basale CRUD operaties op objecten, dat levert vaak al bijna alle resultaten op die je nodig bent en is vaak vrij simpel te implementeren.
Gewijzigd op 17/01/2012 03:56:34 door Pieter Jansen
Probeer dan in de controllers in fabiens framework een container te integreren.
Geef die container dan een db object mee en je kan simpele crud bewerkingen doen.
Als dat niet lukt kan je het altijd vragen.