Ola,

Stel je hebt een bootstrap, je stelt je autoloader in en jr roept je core/kernel class aan. Nu zit ik me wat af te vragen. Ik wil een aantal "eigen" functies inladen. Om die functies te kunnen gebruiken, moet ik ze natuurlijk zo vroeg mogelijk, dus aan het begin van het request, inladen. Wat is hier de juiste plaats voor: in de bootstrap file, nog voordat ik de core/kernel class aanroep? Of doe je dit juist in de constructor van de core/kernel class? Of maakt het niks uit? Wie kan me uitleggen wat de beste plaats is (als die er is) en waarom?

En soms wordt hier gesuggereerd dat er maar 1 waarheid is :)

Dat is niet zo, de waarheid is maar net waar JIJ genoegen mee neemt.
Daarom zei ik dus even een stapje terug doen en naar de tekentafel.

Dan ben je dus als het ware de native php functies aan het nabouwen

Dat klopt, maar dat is nou juist het mooie van een framework bouwen, en heeft niets met de applicatie laag zelf te maken.
En daarom zei ik dus dat je een van de twee dingen even los van elkaar moest bekijken.
Een good praktice is, als het je probleem (nogmaals) oplost.
Dus als jij er in keer ervoor kunt zorgen met een paar regels code dat iets "slimmer/beter" werkt dan is het goed.
Het zou dus geen goed of fout vraag mogen zijn.

Aan de andere kant mag je natuurlijk wel "dromen" hoe zou dit werken in mijn applicatie, en dat is eigenlijk wat Wouter en andere hier zeggen. Nogmaals, programmeren is niet iets wat goed of fout is, alleen soms zijn die dingen misschien van input van andere net even wat slimmer. Je zou dat moeten meenemen of dat ook zo is in jou geval.
Thanks Bart. Dat is ook waarom ik vragen stel... om input van andere te krijgen en indien zinvol mee te nemen in m'n eigen projectje :)

"Dat klopt, maar dat is nou juist het mooie van een framework bouwen, en heeft niets met de applicatie laag zelf te maken."

Kun je me uitleggen wat je met deze zin bedoelt, want ik snap niet helemaal wat je hiermee bedoelt.
Je framework bevat bevat bepaalde funtionaliteiten waarmee je problemen mee oplost. Daar waren we het over eens toch?

Je applicatie laag weet totaal niets wat of welk framework gebruikt word.
Want, als ik jou theorie van je topics doorlees, dan gok ik zomaar dat je applicatie iets van functionaliteit gaat krijgen wat iets van een CMS-achtig ding zou moeten worden misschien wel een webhosting-achtig ding noem maar wat. ;)
En dat is nou juist het mooie daarvan, wat jij gaat maken met jou eigen code (framework) dat zou ik zomaar kunnen nabouwen met een framework die ikzelf gebruik.

Stel nou dat we het uber idee krijgen om een blog systeem te maken, dan kan jij dat bijvoorbeeld met OzziePhp framework inzetten en ik bijvoorbeeld met Codeigniter, of Laravel, misschien wel met BartPhp. Alleen jij doet het met de functionalitieit van Ozzie, en ik met Bart. Het uiteindelijke doel is dat we een blog applicatie hebben.
Echter, jou blog systeem doet iets van Ozzie::Blog en de mijne doet iets van $this->load->module->bart->blog.
Uiteindelijk zijn het beide blog systemen, alleen de look and feel zijn net even wat anders. Snap je?
Hehe, lol... ja ik snap ongeveer wel wat je bedoelt. Jij bedoelt te zeggen als ik ergens een artikel wil tonen, dan zeg ik bijv. Ozzie::ShowArticle, en jij zou dan zeggen Bart::ShowArticle. Dat kan ik allemaal begrijpen. Alleen ik ben nog steeds benieuwd hoe zich dat dan verhoudt tot die native functions. Ik denk dat jij wil zeggen dat ik dus geen (eigen) native php code in mijn applicatielaag moet gebruiken, maar alleen classes uit het framework. Omdat wanneer ik wél native functions zou gebruiken in de applicatielaag, ik het framework niet zou kunnen vervangen door een ander framework. Is dat wat je bedoelt?
Juist.
Dat is precies wat ik bedoel.
Alleen zeg je het verkeerd om denk ik.(of lees het verkeerd) mag op dit tijdstip.
Of je gebruikt een "algemene" code, of die van jou eigen framework. Maar ga het niet mixen met elkaar of het moet heel goed verantwoord OO zijn.

Maar ik gaat naar bed, lees morgen wel de reakties. trusten iedereen. :)
Ja goed plan. Ik duik ook zo m'n bed in. Thanks voor de tips! En als anderen nog iets willen toevoegen hoor ik het graag!

Reageren