MVC pagina
Ozzie PHP op 23/02/2014 19:46:00:
Hmmm, oké... dit is een vrij specifieke implementatie. Ik ben vooral benieuwd naar de achterliggende gedachte en de meest handige implementatie. Bedankt voor jullie input tot zover. Ik ga eerst eens goed nadenken wat ik straks wil (moet het bijv. wel of niet dynamisch zijn en aan te passen zijn via een admin). Ik ga er nog eens een paar nachtjes over slapen. Ik kom hier waarschijnlijk over een tijdje wel weer op terug als ik een duidelijker beeld heb van wat ik wil. Thanks allemaal!
Succes ermee! We horen wel wat van je
>> Hmmm... nu vraag ik me toch weer af of je begrijpt wat server-side betekent. Je wilt zoiets toch niet client-side gaan regelen?
Tuurlijk begrijp ik wat server side betekent, lijkt me niet zo'n moeilijk begrip toch? En ik weet niet precies wat jij bedoelt met "zoiets", maar ja, ik zou zeker heel veel client side regelen.
Server side template engines bijvoorbeeld, die zijn een beetje onnodig tegenwoodig. Wel makkelijk, voor simpele projectjes. Maar als je je logica (business logica, view logica) goed wilt scheiden is het onnoidg.
En ik weet dat PHP oorsponkelijk een soort template engine is (voordat er weer iemand op elk slakje zout wilt leggen), maar het is inmiddels ook wel meer dan dat.
Maar goed, dit is iets wat ik je toch niet duidelijk kan maken. Ik denk dat je momenteel toch niet van je eigen denk wijze zal wijken. En dit is nu ook niet echt de plek voor mij om uitgebreid een heel groot verhaal neer te kwakken waarom het ene idee wel klopt en de ander niet.
Wat ik al eerder zei, je ziet vanzelf wel tegen welke problemen je aan gaat lopen (of niet).
Een template engine?
Ik bedoel het niet lullig, maar ik snap niet zo goed wat je bedoelt.
>> Server side template engines bijvoorbeeld, die zijn een beetje onnodig tegenwoodig. Wel makkelijk, voor simpele projectjes. Maar als je je logica (business logica, view logica) goed wilt scheiden is het onnoidg.
Ik snap ook niet heel goed wat je hiermee bedoelt, maar misschien ligt het aan mij. Omdat je ook nu weer begint over dat server side template engines onnodig zijn, vroeg ik me af of je het begrip server side begrijpt. Ik zou namelijk niet weten hoe je controllers, models en views client side wil laten samenwerken.
Ik heb het idee dat jij Views aan elkaar wilt knopen met PHP code (server side dus). Ik heb het dus niet alleen over 1 view die je returned vanuit een controller (dat kan niet anders). Maar echt over het aan elkaar knopen van meerdere views.
Ik ga misschien nu weer een stapje te ver door het over 'template engines' te hebben. Misschien heb je daar nog niet over na gedacht, of weet niet wat het is? Maar hoe dan ook, dit draait toch alleen maar uit op een ellenlange discussie van wat wel en niet goed is. Dan begrijpen we elkaar weer een keer niet etc.
Het is ook weer niet mijn bedoeling om er over door te blijven gaan. Ik kan mijn hele idee niet goed en kort uitleggen en duidelijk maken. Ik zal het wat dit topic betref er ook wel bij laten. Bedoel ik overigens niet lullig oid. Maar dalijk zitten we op de 200 reacties omdat ik meer weer vertellen en duidelijk maken dan nodig is.
Je had ook al aangegeven dat je er zelf goed over na wilde gaan denken over hoe en wat. Dus in elk geval succes daarmee.
In ieder geval bedankt voor het meedenken, ook al begrijpen we elkaar niet helemaal ;)
Vivendi, ik ben wel geinteresseerd in hoe jij Views client side ziet. Kun je daar misschien een tutorial over schrijven/topic over beginnen/linkjes over geven?
Ozzie, ik had het toevallig gistermiddag een hele tijd met wat Symfony mensen over dit concept en daaruit hebben we besloten dat je in de template het beste de positie kunt aangeven en in de controller wat. Dus de template definieert top, middle, bottom En wat daarin komt wordt bepaald door een controller die modules met modules met modules met ... aan elkaar koppelt.
Ik ga even proberen uit te leggen hoe ik het zie.
Iemand roept aan wouterj.nl/contact.
De route die we hier uit afleiden is "contact".
Mijn idee was dan om aan deze route een parent (page)controller te koppelen, in dit geval de contactController.
In deze contactController roep je een indexAction aan. In deze indexAction geef je aan welke modules er op de uiteindelijke contactpagina moeten worden getoond:
- header
- address
- map
- footer
Deze 4 modules hebben allemaal hun eigen view. Op de uiteindelijke contactpagina die de client te zien krijgt, worden deze 4 views onder elkaar getoond.
Dat was zo'n beetje mijn idee. Op welke manier is jouw idee anders dan het mijne?