OOP in combinatie met database
Pagina: « vorige 1 2 3 volgende »
Ik zou zo'n start-tutorial wel heel erg prettig vinden als houvast. Vandaar dat ik benieuwd ben of Pim tijd heeft om zo'n tutorial te maken. Dit hoeft geen megalange tutorial te zijn overigens. Het gaat mij vooral om de basisprincipes. Ik zou graag weten hoe ik die op een goede manier moet implementeren.
Ik ga rustig de code van de datamapper en het framework schrijven. Als dat af is, plaats ik het op het forum en maak er daarna een tut van. Die voorbeeldapplicatie komt dan daarna wel.
Met die DI tut ben ik wel wat uurtjes bezig geweest. En dan zijn de eerste twee pagina's nog grotendeels gejat/vertaald.
Zonder enige druk op je schouders te leggen ;) heb je een idee wanneer je de eerste code (ongeveer) zou kunnen plaatsen? Praat je dan over een week? 2 Weken? Een maand?
Toevoeging op 06/01/2012 12:58:21:
Ik heb geen idee.
Oké... dan blijf ik gewoon wachten :)
Zouden jullie het een goed idee vinden als ik in het micro framework wat bestaande componenten gebruik en die goed toelicht? Dat wordt de framework code een stuk simpeler en hoef ik me niet bezig te houden met autoloading en het request en response object. Evt kan ik dan ook nog iets voor routes gebruiken, ik ben niet zo goed in het parsen van bijvoorbeeld /car/:type naar een nuttige regex, maar als iemand me daarbij kan helpen is dat ook prima.
Je bedoelt bijv. dat je voor het autoload component een reeds bestaande class gebruikt? Als dat het voor jou makkelijker maakt dan heb ik daar geen bezwaar tegen. Als het dan nog maar wel allemaal simpel te volgen is en op een duidelijke manier wordt geimplementeerd. Het gaat mij persoonlijk vooral om een simpele basisopzet.
Hoe vang je de url af, hoe maak je er een route van die je vervolgens koppelt aan een controller / model / view. Als een class een database nodig heeft om gegevens op te halen / weg te schrijven, wat is hier dan de beste manier voor (active records e.d.). Dat soort dingen zou ik graag weten. En ook bijvoorbeeld... is DI van toepassing en zo ja... hoe integreer je dat?
Ik noemde al eerder het voorbeeld van de autodealer. Wellicht is het een idee om bijvoorbeeld 3 url's uit te werken:
- www.mijnsite.nl/toonautos // dit toont een overzicht van alle auto's
- www.mijnsite.nl/toonauto/31 // toon auto met id 31
- www.mijnsite.nl/voerautoin // hier kun je een auto invoeren (en in de db opslaan)
En alles heeeeel simpel uitgewerkt. Bij voerautoin hoef je dus niet te kunnen inloggen ofzo. Gewoon een simpel formulier met 1 veld (bijvoorbeeld "merk").
Het gaat er dus vooral om, hoe kom je van een request (invoeren van de url) tot een view gebruikmakende van OOP.
Ik hoop dat ik het een beetje duidelijk heb uitgelegd en dat je hier iets mee kan!
Gewijzigd op 08/01/2012 23:46:41 door Ozzie PHP
- mijnsite.nl/auto/show (of gewoon index)
- mijnsite.nl/auto/show/31
- mijnsite.nl/auto/new
Hierbij wordt de url opgebouwd uit %domeinnaam%/%controller%/%action%/%parameter%/ zoals Zend Framework ook doet.
Ik weet dat je in Zend Framework je route volledig flexibel kunt opbouwen, dus exact zoals jij zelf wilt, bijvoorbeeld:
-mijnsite.nl/toon/auto/4/collectie/10 (waarbij de controller bijvoorbeeld Car is en de action showCollection). Maar ik vrees dat dit te complex is om in de tutorial mee te nemen.
Liever niet. Waarom zou je per se je route moeten laten lijken op je mvc structuur? Gewon expliciet routes definieren is mijns inziens mooier.
Dit voorbeeldje wat ik eerder gaf?
-mijnsite.nl/toon/auto/4/collectie/10 (waarbij de controller bijvoorbeeld Car is en de action showCollection). Url en controller / action hebben niks met elkaar te maken.
Dat zou ik persoonlijk wel heel mooi vinden. Maar dan zou het op een manier moeten dat het echt flexibel kan (dus geen vaste positie voor parameters).
/:id/:slug => auto detail pagina (slug is bijv: peugeot-een-of-ander-type-CSG92)
/admin/ => admin overzicht
/admin/add => toevoegen
/admin/edit/:id => bewerken
Iets dergelijks lijkt me wel mooi.
Hmm, ik denk dat ik niet meer kan volgen in dit topic.. Het is net iets te complex, ik zal dan ook gewoon afwachten op de tut? Ik denk dat deze dan ook wel geschikt zal zijn voor mij?
MVC object in het kort:
Model - De class die de gegevens ophaalt vanuit een database, xml file of wat je dan ook wilt
View - Een HTML pagina die de gegevens toont, zoals een website
Controller - Een class die de gegevens van het model omzet in gegevens voor de view en er eventueel wat dingen mee doet
Ja, het mvc model begrijp ik al ongeveer. Dat heb ik vooral leren kennen via codigniter. Maar ik zou graag eerst zelf OOP kunnen voor ik mezelf vastnagel aan één framework.
Wat ken je dan niet van OO? Kan je nog niet Object geörienteerd denken of heb je nog problemen met de uitwerking ervan?
Als het om het 2e gaat kun je het beste het topic van Ozzie over 'eigen framework' (staat bovenin OO gedeelte van dit forum) doorlezen. Hierin staan heel veel OO technieken, werk ze eens rustig door ga wat google en maak notities. Of google eens op OO design patterns. Hierdoor krijg je ook een beeld van handige methodes.
Vervolgens moet je dingen gaan maken. Ik ben 2 weken geleden ook begonnen met het opkrikken van mijn OO kennis en ben nu bezig met een CMS systeem (volledig OO).
Wouter, maar begrijp ik dus goed dat indien je een app wilt maken (volledig OO) dat je best ineens het MVC-model gebruikt of zijn er andere opties?
Je hebt dan namelijk de ideale verhoudingen. Stel dat je een website hebt gemaakt met een mysql database en er later achterkomt dat dat niet kan en je alleen via een xml file kan werken. Dan is het in het MVC model zeer simpel, je hoeft slechts alleen de Model aan te passen en de rest niet.
Dat is ook de uitgangspositie van OO. Het verdelen van de taken in classes, zodat mocht je iets willen veranderen het makkelijk te doen is en je niet 100% de code opnieuw hoeft te schrijven maar enkel alleen kleine stukjes van classes.
Ok super, dan was ik toch op de goede weg. :) Dus als ik nu eens ga zien hoe een framework in elkaar zit en ik beheers het mvc-model goed dan kan ik zelf een OO programma schrijven?