Als hobby maak ik mijn eigen CMS'je. Dat het maar voor mijzelf is wil niet zeggen dat ik het niet zo goed mogelijk wil doen. Ik wil de code zo onderhoudsvriendelijk mogelijk maken. Bovendien moet het systeem uit te breiden zijn.
Heel beknopt werk ik nu als volgt: ik
• include alle modules die ik heb
• lees de url uit en bepaal welke node uit de boom gevraagd wordt
• zoek uit aan welke module (artikel, gastenboek, ...) de node gekoppeld zit
• roep de module aan door [modulenaam]_init() aan te roepen
De reden dat ik eerst alle modules include is omdat ik niet weet of het verstandig is om ergens midden in je script een bestand te includen. Want logischer zou natuurlijk zijn om alleen de betreffende module te includen als ik uitgezocht heb welke module ik in moet laden:
• include_once 'modules/[modulenaam].php en dan
• roep de module aan door [modulenaam]_init() aan te roepen
Nu is het nog zo dat ik een module kan aanroepen en omdat deze al eerder geinclude is, kan de functie meteen gestart worden. Als ik "realtime" eerst de betreffende module moet includen, moet de rest van mijn script daarop wachten. Nu inlcude ik alles voordat ik verder script. Mijn vraag is of dit onzin is of is het inderdaad niet netjes om ergens midden in je script een afhankelijke include te doen?
Tweede vraag: als ik kijk naar opensource projecten als drupal.org, valt het me op dat deze software nooit "in de globale omgeving" (ik hoop dat ik me goed uitdruk) scripts draaien: letterlijk de hele applicatie bestaat uit functies die elkaar aanroepen. Alleen op index.php staat een stukje script wat niet in een functie zit. Alle andere bestanden bevatten alleen maar functies:
Is dat de beste manier van programmeren: om letterlijk alles in kleine en grote functies te stoppen? Soms komen hier op GoT hele lappen PHP code voorbij waarvan de code niet in een functie gestopt is. Wat zijn de voor / nadelen? Ik hoop dat ik duidelijk ben...
Heel beknopt werk ik nu als volgt: ik
• include alle modules die ik heb
• lees de url uit en bepaal welke node uit de boom gevraagd wordt
• zoek uit aan welke module (artikel, gastenboek, ...) de node gekoppeld zit
• roep de module aan door [modulenaam]_init() aan te roepen
De reden dat ik eerst alle modules include is omdat ik niet weet of het verstandig is om ergens midden in je script een bestand te includen. Want logischer zou natuurlijk zijn om alleen de betreffende module te includen als ik uitgezocht heb welke module ik in moet laden:
• include_once 'modules/[modulenaam].php en dan
• roep de module aan door [modulenaam]_init() aan te roepen
Nu is het nog zo dat ik een module kan aanroepen en omdat deze al eerder geinclude is, kan de functie meteen gestart worden. Als ik "realtime" eerst de betreffende module moet includen, moet de rest van mijn script daarop wachten. Nu inlcude ik alles voordat ik verder script. Mijn vraag is of dit onzin is of is het inderdaad niet netjes om ergens midden in je script een afhankelijke include te doen?
Tweede vraag: als ik kijk naar opensource projecten als drupal.org, valt het me op dat deze software nooit "in de globale omgeving" (ik hoop dat ik me goed uitdruk) scripts draaien: letterlijk de hele applicatie bestaat uit functies die elkaar aanroepen. Alleen op index.php staat een stukje script wat niet in een functie zit. Alle andere bestanden bevatten alleen maar functies:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| // $Id: index.php,v 1.77 2003/12/16 21:06:33 dries Exp $ include_once "includes/bootstrap.inc"; drupal_page_header(); include_once "includes/common.inc"; fix_gpc_magic(); menu_build("system"); if (menu_active_handler_exists()) { menu_execute_active_handler(); } else { drupal_not_found(); } drupal_page_footer(); |
Is dat de beste manier van programmeren: om letterlijk alles in kleine en grote functies te stoppen? Soms komen hier op GoT hele lappen PHP code voorbij waarvan de code niet in een functie gestopt is. Wat zijn de voor / nadelen? Ik hoop dat ik duidelijk ben...
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."