MVC Frameworks

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pim -

Pim -

03/09/2010 21:36:12
Quote Anchor link
Naar aanleiding van deze 'discussie' hier een topic over je favoriete MVC framework.

Zelf heb ik wat ervaring met het Zend Framework en bepaalde componenten zijn me zeer goed bevallen. Dit betreft onder andere Debug, Validation, Log en Mail. Minder tevreden ben ik over het hele MVC deel van het framework: onlogisch en onhandig.

Ook heb ik na positieve reviews gelezen te hebben heb ik wat door de source van CodeIgniter gelezen, maar dit was zo slordig OOP en had een rare interpretatie van MVC dat ik me er niet echt in verdiept heb.

Velen op het internet zijn razend enthousiast over symfony, maar ik wacht de release van versie 2 af, om geen dingen opnieuw te hoeven leren.

En heeft iemand (Niels ;-) ) nog briljante inzichten hierover die hij graag wil delen?

Toevoeging op 04/09/2010 19:30:09:

bump
 
PHP hulp

PHP hulp

23/01/2020 12:27:23
 
Pim -

Pim -

05/09/2010 13:20:19
Quote Anchor link
nog 1 en de laatste bump
 
Jelmer -

Jelmer -

05/09/2010 13:48:49
Quote Anchor link
Wat is dan jouw visie van een kloppend MVC model? Hoe zou jij – om maar even een simpel voorbeeld te nemen – een gastenboek maken? Waar stop je je form in, hoe doe je de validatie, wat zit er in de controller en wat in de view?
 
Nicoow Unknown

Nicoow Unknown

05/09/2010 14:32:08
Quote Anchor link
Er zijn heel veel manieren voor een MVC model.
Sommigen zeggen dat je Model alleen data opslag is (objecten en dergelijken) sommige zeggen dat het je data opslag controller is (verbinding en verwerken met database o.i.d.) sommigen zeggen dat je model het structuur van je programma bevat.
Zijn allemaal interpretaties, en allemaal hebben ze hun voor en nadelen.

Zelf gebruik ik vaak een MVC Observer pattern, waarbij mijn Model alleen data objecten zijn, mijn Controller gegevens wegschrijft en ophaalt, en de View voor het weergeven, met gebruik van de objecten.
De observer gebruik ik dan om te zorgen, dat als er nieuwe input is, dat iedereen er vanaf weet.
In PHP is dit niet echt handig, maar in talen als Java en C#, waar je niet met een page-refresh zit, is dit voor mij zeker een uitkomst.
Maar ook dit is weer een eigen interpretatie, en of die goed of fout is, daar durf ik niet over te oordelen, ik ben geen echte expert, maar ik vind mijn systeem lekker werken, het enigste nadeel is dat je een beetje snelheid verliest, omdat iedere Controller gaat kijken of hij iets met een wijziging moet doen.
Maar ook daar kan je optimalisaties voor inbouwen.
Voor de rest heb ik weinig ervaring met echte frameworks, voornamelijk omdat ik te vaak projecten heb lopen, waarvoor ik te weinig tijd neem om te experimenteren.
Nu breekt een iets rustigere tijd aan, dus ik ga wel beginnen met een framework, maar eerst alle pros en cons van allemaal afwegen, en alles even proberen, kijken wat ik lekker vind werken.
 
Jelmer -

Jelmer -

05/09/2010 15:24:56
Quote Anchor link
Onder model laat ik zelf meestal de classes die bijvoorbeeld een gastenboekbericht en de bijbehorende opslag vallen. Hoe dat precies werkt staat niet vast, of dat ieder object een eigen opslag heeft. Je hebt gewoon het model, en dat heeft één ingang, en dat kan je in principe in alle PHP code hergebruiken. Of je nu een website of een cli app maakt.

Controller en view lopen bij mij een beetje door elkaar. Controller is bij mij het 'entry point' zeg maar. Eventueel zit er nog een router voor, maar de controller bepaalt welke view er wordt aangemaakt, en of die wordt geprint. De view is meestal een template, met daarin weer andere views zoals een formulier. Een formulier is een eigen object, dat je initialiseert met een object uit het model, bijvoorbeeld een gastenboekbericht. Dat past hij dan direct aan, en met dat object communiceert hij of de waarden geldig zijn of niet. De controller kijkt nog even of het formulier is verstuurd en alle waarden geldig waren, en slaat dan het object opnieuw op door tegen het model te zeggen dat 'ie dat ding op moet slaan.

Nou ja, dat is het model dat ik soms gebruik. Ik heb nu ook iets anders, en dat heeft een hele structuur aan objecten wat ik de view noem. Dat is nu net zo'n ding als m'n model, met een toegangspunt waarvandaan je de menu's, titels, etc aan kan passen. De controller praat dan alleen nog maar tussen het model en de view, zowel het model als de view worden al automatisch geïnitialiseerd. Zou de controller leeg zijn, dan krijg je een lege site, maar niet een blanco pagina zeg maar.

En zo experimenteer ik wat verder.
 
Pim -

Pim -

05/09/2010 18:57:53
Quote Anchor link
Als schoolgaande hobbyist heb ik geen jarenlange ervaring met wat werkt en wat niet. Meestal houd ik me aan wat wordt aangeraden, 'slim controllers, fat models' en vooral kijk ik naar hoe 'mooi' ik het vind. Zo vind ik de datamapper Doctrine2 'prachtig'.

Ik ben nu een klein MVC-achtig frameworkje aan het maken dat ik wil gaan gebruiken voor een huidig en toekomstige betaalde projecten. Dit zijn kleine websites met wat extra's als lijstjes en dergelijke en moet een CMS zijn. Omdat ik veel CMS'en vaak lomp en erg lastig aan te passen vind, heb iets anders geprobeerd. Elke pagina is een klasse in een bestand. Bij het maken van een nieuwe pagina wordt dus een nieuw bestand aangemaakt dat alleen een name property heeft en verder een abstracte pagina uitbreidt. Zo is het geheel dynamisch en toch eenvoudig van een simpele pagina uit te breiden tot ingewikkelder functionaliteiten. De pagina's zijn active records.

Het enige waar ik nog mee zit is hoe de administratie hiermee moet worden geïntegreerd. Ik denk nu aan onbewerkbare admin pagina's en dat de pagina-specifieke formulieren en afhandeling door de desbetreffende pagina worden zelf gerenderd. Een alternatief is dat bij elke pagina een formulier-klasse hoort. Dit is wel iets minder generiek. Heeft iemand een goed idee hierover?

@Jelmer, kan je dat laatste model iets meer toelichten? Nu snap ik er niet veel van.
 
Nicoow Unknown

Nicoow Unknown

05/09/2010 19:50:47
Quote Anchor link
Doctrine2 ziet er inderdaad goed uit,
Heb hiervoor wel vaak met Hibernate gewerkt in Java, en dat werkt ook heerlijk, hoewel de eerste keer opzetten echt een pain-in-the-ass kan zijn.
Dat ik toen keek naar Doctrine, (1.0 of 1.1 in die tijd), miste het nog ontzettend veel mogelijkheden, en was het te incompleet, het ziet er nu al stukken beter uit. als k dan snel een paar voorbeelden bekijk.
Ik ga er even mee spelen, kijken of het werkt.
 
Niels K

Niels K

09/09/2010 19:07:52
Quote Anchor link
Aah, dit topic zie ik nu pas, terwijl ik zelf had voorgesteld deze te starten.

Quote:
Dit betreft onder andere Debug, Validation, Log en Mail. Minder tevreden ben ik over het hele MVC deel van het framework: onlogisch en onhandig.

Waarom onlogisch en onhandig? Kan je dit toelichten? Ik gebruik zelf maar een aantal onderdelen van Zend Framework. Gewoon omdat de helft gewoon te veel werk is en het op de 'normale' manier sneller en efficiënter gaat. ( BV: Zend_Form )

Quote:
Velen op het internet zijn razend enthousiast over symfony

Dat kan ik alleen maar beamen. Vele male beter dan Zend Framework.

Quote:
source van CodeIgniter gelezen

Toen ik hoorde dat het niet in PHP5 was geschreven ( Wel ondersteuning trouwens... ) heb ik niet eens de moeite genomen om het te downloaden.

Quote:
En heeft iemand (Niels ;-) ) nog briljante inzichten hierover die hij graag wil delen?


Briljant? Uhh nee.. Wel heb ik nog een paar ideeën die met een aantal mensen uitgevoerd kunnen worden, maar dat bedoel jij niet..:)

Quote:
Zelf gebruik ik vaak een MVC Observer pattern

Daar ben ik zelf ook voorstander van. Zeker met de taal JAVA is het observer pattern heel veel gebruikt en wordt dat natuurlijk nog steeds.

Quote:
En zo experimenteer ik wat verder.

En dat doet iedereen.. Er zijn niet echte regels waar je jezelf aan moet houden.

Quote:
Ik ben nu een klein MVC-achtig frameworkje aan het maken

Kan je die eens delen?

Quote:
Omdat ik veel CMS'en vaak lomp en erg lastig aan te passen vind

Daar kreeg vanmorgen in de bus onderweg naar school al zeg ik het zelf een briljant idee over. Maar omdat ik nu nog op school zit kan ik even niet een uur achter elkaar gaan typen..:) Dit komt morgen avond wel.
Quote:
Heeft iemand een goed idee hierover?

Dat heb ik zeker, maar daarvoor moet je even wachten..>:)
Gewijzigd op 09/09/2010 19:11:23 door Niels K
 
Mark PHP

Mark PHP

09/09/2010 21:54:15
Quote Anchor link
Een keuze voor een framework is erg afhankelijk van de requirements. Simpel voorbeeld:
- functionaliteiten: Zend Framework
- kant-en-klaar: Symfony
- snel: Kohana

Persoonlijk gebruik ik mijn eigen framework, welke nu in productie draait. Zeer snel, modulair en precies zoals ik het wil. Ik ben geen persoon die via de command line alle scripts automatisch wil laten aanmaken. Verder vind ik Zend te log, en andere geen nette codestijl hebben. Dan zit er niets anders op dan je eigen te ontwerpen.

Mocht je hier tijd voor hebben; gelijk doen. Een prima manier om geconfronteerd te worden met design issues, patterns en dergelijke.
Gewijzigd op 09/09/2010 21:55:18 door Mark PHP
 
Niels K

Niels K

18/09/2010 18:16:05
Quote Anchor link
Ik had beloofd om nog wat te schrijven hierover.. Maar omdat ik niet zoveel tijd heb is dat dus niet die avond van mijn vorige bericht geworden..

Quote:
En heeft iemand (Niels ;-) ) nog briljante inzichten hierover die hij graag wil delen?

Quote:
Omdat ik veel CMS'en vaak lomp en erg lastig aan te passen vind


Twee dingen:

- Ik zou graag met een aantal mensen een CMS willen bouwen.
- Dat CMS moet dus juist niet lastig zijn en gemakkelijk te implementeren zijn.

Ik heb daar een aantal ideeën over, maar ik heb even geen tijd om die neer te zetten. Ik zal zodra ik er tijd voor heb ( volgende maand ) een nieuw topic voor openen en mijn mening daar plaatsen.

Gr
 
Niek s

niek s

18/09/2010 19:57:15
Quote Anchor link
Niels Kieviet op 18/09/2010 18:16:05:

- Ik zou graag met een aantal mensen een CMS willen bouwen.
- Dat CMS moet dus juist niet lastig zijn en gemakkelijk te implementeren zijn.

Ik heb daar een aantal ideeën over, maar ik heb even geen tijd om die neer te zetten. Ik zal zodra ik er tijd voor heb ( volgende maand ) een nieuw topic voor openen en mijn mening daar plaatsen.

Gr


Je bedoeld dus Drupal?
 
Niels K

Niels K

20/09/2010 17:06:52
Quote Anchor link
Zo ongeveer.. alleen dan een geheel andere aanpak..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.