[mvc] Waar gaat de bootstrap?
Heb op dit moment deze structuur:
Nu mijn vraag: mag ik alle bootstrap dingen ook in mijn FrontController doen? (dingen als event subscribers registreren, een request loggen)
En als het dan toch via een bootstrap moet, waar ergens in de module/application directory moet dat dan staan?
Raoul
Maar als ik naar je mappen structuur kijk lijkt het alsof je een FrontController in je applicatie code (en dus niet in je framework) hebt? Dat lijkt me niet correct.
Wouter J op 02/02/2013 19:10:31:
De keuze is aan jouw wat je doet, ik prefereer een bootstrap/config bestandje, maar je ziet ook wel dat het in de FrontController gebeurd.
Maar als ik naar je mappen structuur kijk lijkt het alsof je een FrontController in je applicatie code (en dus niet in je framework) hebt? Dat lijkt me niet correct.
Maar als ik naar je mappen structuur kijk lijkt het alsof je een FrontController in je applicatie code (en dus niet in je framework) hebt? Dat lijkt me niet correct.
Hoort dat dan niet in applicatie dan? Door de programmeur gemaakte event subscribers wil je toch zelf kunnen registreren in een eigen bootstrap?
Dan zit ik verkeerd. Waar zou jij dat bootstrap bestand dan zetten?
Ik persoonlijk dacht aan module/application/src/Application/Bootstrap.php
Gewijzigd op 02/02/2013 19:14:05 door - Raoul -
Oh in zo'n geval. Ik zou Event Subscribers ook gewoon in een configuratie bestandje zetten (in SF2 gaat dit zelfs samen met de services, alleen geef je ze dan een event tag mee
Dat config bestand is een goed idee, bedankt daarvoor. En what about loggen? Toch een bootstrap bestand daarvoor dan?
loggen?
Zoiets doe je in de controller of in een andere klasse wanneer je dat nodig hebt. Ik zie niet in waarom je iets zou willen loggen in een bootstrap.
Wouter J op 02/02/2013 19:19:32:
Zoiets doe je in de controller of in een andere klasse wanneer je dat nodig hebt. Ik zie niet in waarom je iets zou willen loggen in een bootstrap.
Stel, je wilt iedere request loggen. Slecht voorbeeld maar goed. Dan ga je toch niet in iedere controller dezelfde logging code schrijven?
Of heb ik het nu verkeerd?
Een request loggen gebeurd toch al door de FrontController van je framework? Loggen in een controller van je zelf gebeurd alleen bij gebeurtenissen die je wilt loggen die door de controller gedaan worden.
Wouter J op 02/02/2013 19:28:55:
Een request loggen gebeurd toch al door de FrontController van je framework? Loggen in een controller van je zelf gebeurd alleen bij gebeurtenissen die je wilt loggen die door de controller gedaan worden.
Je hebt een punt. Ik kan alleen echt geen voorbeeld bedenken wanneer je iets wilt doen bij iedere pagina-request...
En daarom hoort zoiets niet in een bootstrap, je wilt er nooit iets loggen. Loggen gebeurd alleen als er een gebeurtenis plaats vind, die vinden nooit plaats in de bootstrap, maar in de klasse die een gebeurtenis uitvoeren.
Wat hoort er dan wel in een bootstrap, kun je een voorbeeldje geven? :)
https://github.com/WouterJ/PHPbench/blob/master/lib/main.php of https://github.com/WouterJ/inspector/blob/master/inspector.php
In de bootstrap maak je de applicatie klaar om te werken. Het is zeg maar de constructor van je hele applicatie. Voorbeelden: Thx!