Ik heb nu de basis van PHP wel gezien, en wil nu graag beginnen met het scripten in een MVC-pattern. Na de nodigde informatie verzameld te hebben, ben ik vandaag begonnen met het schetsen van de pattern. Ik wil graag voordat ik ga beginnen om het toe te passen graag weten of deze schets wel klopt, en dat ik het hele gebeuren wel begrepen heb. Daarom wil ik graag op/aanmerkingen over de onderstaande schets horen.
of je aan zo'n schema echt iets hebt bij het ontwerpen van een applicatie, wel, daar stel ik mij vragen bij...
ik vind het altijd wel handig, ik maar voor al mijn websites schema's. Zo kan ik goed zien hoe ik het moet doen.
avdg schreef:
Ik raad je aan om scripts of misschien nog beter met frameworks te beginnen (zoals ZF, CakePHP) met een mvc feature.
Ik raad je streng aan om met frameworks te beginnen, omdat ikzelf sindsdien niet meer ben afgestapt van oop in php.
Opzich vind ik frameworks altijd wel handig en makkelijk. Maar ik vind dat ze toch maar in de weg staan. Zo neemt zend framework iets van 30mb in beslag terwijl ik 7/8 daarvan niet gebruik. Ook maak ik liever geen gebruik van frameworks omdat ik liever zelf wil weten hoe alle functies in elkaar zitten zodat ik het snel kan oplossen.
edit: heb wat aangepast, is nu ook mogelijk om vanuit de view gegevens op te halen. http://upload.d.../mvc02.png
Als je vanuit je view begint te communiceren met je model dan ben je fout bezig volgens mij.
ik dacht dat dat juist wel handig was, als je snel gegevens nodig hebt voor bijvoorbeeld het menu, en je wilt dat niet telkens in de controller zetten is het handig om zoiets te kunnen. of niet? dan haal ik het weer weg.
De view haalt geen data op nee, hij krijgt de data, van de controller, maar belangrijker nog: van de model.
De Model in MVC is de enige die echt kennis mag hebben van de data die verwerkt wordt, de Controller zorgt voor de verbinding tussen Model en View en de Model zorgt verder voor het "pushen" van de data naar de View. :-)
Ik raad je aan om scripts of misschien nog beter met frameworks te beginnen (zoals ZF, CakePHP) met een mvc feature.
Ik raad je streng aan om met frameworks te beginnen, omdat ikzelf sindsdien niet meer ben afgestapt van oop in php.
Je kan beter zelf een mvc frameworkje bouwen zodat je meer de logica achter het pattern snapt. Simpelweg zend downloaden, tutorialtje volgen bereik je nog niet veel mee.
Marten, hij zegt dat hij de basis heeft gehad van php en ik neem aan dat hij daar niet OOP mee bedoeld. Dus een framework maken is dan nogal lastig. Eerst moet je weten hoe een MVC framework werkt lijkt mij.
Ik heb eerst eventjes met cakephp gewerkt totdat ik MVC een beetje snapte. Toen ben ik begonnen met een eigen MVC frameworkje. Die was af maar werkte niet hoe ik wilde. Toen kreeg ik op mijn werk de mogelijkheid om mij te verdiepen in ASP.NET C# met het MVC framework en dat maakte nog meer duidelijk. Toen ben ik weer gaan bouwen aan dat frameworkje (opnieuw ontwikkelt zeg maar) en nu werkt hij een stuk beter.
Dus eerst kennis van MVC is wel nodig om echt een eigen MVC frameworkje te bouwen, denk ik.
Waarom zou je er een framework voor nodig hebben?
Als je echt wil snappen hoe mvc ZUIVER in elkaar zit kan je dit makkelijk bereiken door gewoon een frontcontroller te schrijven, een model, view en bijhorende controller en proberen dit werkende te krijgen.
Wil je alles toch mooi in een schematje gieten, bekijk dan voor mvc eens de robustness analyse: http://www.code...oller.aspx
Ik snap niet waarom mensen het wiel altijd maar opnieuw willen uitvinden. Prima als je denkt dat je iets kan brengen wat andere niet hebben zoniet begin dan niet aan het bouwen van een eigen framework.
Zelf moet ik nu een webapplicatie maken en bijna de hele projectgroep vond dat we een eigen framework moesten maken. Ik ben zelf rond gaan kijken naar alternatieven ten opzichte van Zend Framework. Omdat deze voor onze toepassing te log is. Nu kan ik je als tip geven kijk eens naar Kohana dit is een lichtgewicht framework wat het programmeren een stuk makkelijker maakt. En je leert door het gebruik ook gelijk met MVC werken.
Ik snap niet waarom mensen het wiel altijd maar opnieuw willen uitvinden. Prima als je denkt dat je iets kan brengen wat andere niet hebben zoniet begin dan niet aan het bouwen van een eigen framework.
Zelf moet ik nu een webapplicatie maken en bijna de hele projectgroep vond dat we een eigen framework moesten maken. Ik ben zelf rond gaan kijken naar alternatieven ten opzichte van Zend Framework. Omdat deze voor onze toepassing te log is. Nu kan ik je als tip geven kijk eens naar Kohana dit is een lichtgewicht framework wat het programmeren een stuk makkelijker maakt. En je leert door het gebruik ook gelijk met MVC werken.
huh? ik maak het alleen voor mezelf, en niet voor anderen. ik vind het gewoon handiger/leuker om me eigen 'mvc-pattern' te maken, omdat ik dan gewoon weet hoe het in elkaar zit.
Eerste is niet tegen jou bedoeld maar vooral de mensen hier die beweren dat een Framework nutteloos is en log en dat je er beter zelf eentje kunt maken. Dat is namelijk bull.... je moet alleen onderzoek te doen welk framework geschikt is voor jouw project.
Sommige blijven heilig bij Zend andere gebruiken CakePHP en weer andere komen terecht bij Codeigniter of zoals ik Kohana. Deze gebruik ik voor een project wat ik nu aan het ontwikkelen ben. Mocht er een volgend project komen dan kijk of dat Framework nog geschikt is of dat er een uitgebreidere moet komen.
Het voordeel van een MVC gebaseerd Framework is dat je bijna verplicht wordt om zelf MVC op de juiste methode te gaan gebruiken waardoor je hier denk ik meer van leert dan zelf een beetje gaan aan klooien met PHP en dan aankomen met een MVC applicatie die maar half MVC is.
Flex, je hebt gelijk: een Framework gebruiken in plaats van er zelf een te maken is in mijn ogen ook beter. Je hebt het gemak en de functionaliteit van een Framework zonder dat je je focus van je project moet verliezen, maar... Het is soms handig, afhankelijk van project tot project ook, om zelf een mini-Framework daar bovenop te maken. Je kan er ook een maken dat je in meerdere projecten kan gebruiken natuurlijk. Dit even gezegd zijnde...
Ik zei niet dat het gemaakt dient te worden maar als je plat de mvc maakt zonder poespas erom heen leer je meer dan door gebruik van een framework. Dus qua werking van het mvc pattern he.
Wat titjes zegt is exact wat ik bedoel Frameworks zijn reuze handig soms overkill soms net niet uitgebreid genoeg je zal dan dus bij elk project moeten onderzoeken welke het best geschikt is.
@marten: Ik verschil hier duidelijk van mening met jou. Ik denk namelijk dat een Framework dat goed is opgebouwd volgens het MVC pattern je dwingt om het op de juiste manier te gebruiken waardoor naar mijn idee het principe beter leert. Ik zie om me heen namelijk te vaak dat mensen denken dat ze weten hoe het werkt maar de plank compleet misslaan waardoor de code juist minder overzichtelijk wordt en nog slechter uitbreidbaar.
In mijn ogen blijft het nog steeds het beste om ineens heel de boel te nemen. Hoe ga je in godsnaam zelf een MVC project maken of zelf een Framework ineen knutselen als je niet eens weet hoe een dergelijk iets functioneert of ineen zit?!
Gebruik een Framework, en dan een eenvoudig als je niet te moeilijk wil beginnen, en leer hoe dat in elkaar zit. Daarna kan je er nog eens wat MVC bovenop gooien en verder leren. Als je dit alles deftig onder de knie hebt kan je zelf zoiets maken vanuit scratch...
ik heb al een tijdje verschillende frameworks gebruikt, en heb al 2 volledige websites die draaien op zend framework.
Het nadeel, wat al vaker gezegd is is dat het erg lomp is, en je vaak niet weet hoe sommige functies in elkaar zitten. Daarom vind ik het handiger om zonder framework een website te maken.
Om toch de scripting zo overzichtelijk mogelijk te houden, dacht ik dat een zelfgeschreven MVC-pattern handig zal zijn. Ik heb vandaag dan ook wat in elkaar gezet, en het werkt tot nu toe hartstikke goed.
Zeker voor een grote site vind ik het niet handig om van een framework gebruik te maken, omdat er toch altijd onnodige dingen ingeladen worden, en dat zorgt voor een extra laadtijd.
@Abbas (titjes), ik zelf heb met een aantal frameworks gewerkt en mijn conclusie is dat ze niet doen wat ik precies wil of op de manier zoals ik het wil. Behalve dat zijn ze vaak ook nog een stuk groter dan ik zou willen. Met die reden heb ik er voor mijzelf eentje gemaakt (+ dat ik meer wilde leren bouwen met MVC, dus wilde ik ook weten hoe en wat het gefixed wordt).
Het gaat er dus niet alleen om of je iets vernieuwends erin hebt, maar ook of je het meer kan maken zodat het praktischer wordt voor jezelf.
Daar geef ik u gelijk in Wijnand. Een eigen MVC pattren weet je hoe het in elkaar zit en hoe het werkt. Misschien dat er dan een foutje inzit en dat je dit er daarna uit kan halen. Maar merendeel geeft het een rustiger gevoel voor te werken.
Nuja iedereen zijn eigen keuze het geeft misschien een voordeel van een groter te gebruiken omdat je dan meer feedback kan verwachten. Maar dat zou mij nu eens niet tegenhouden voor er zelf eentje te schrijven.