Det brukes som nevnt over når man skriver kode basert på klasser eller en annen kodestruktur/rammeverk (MVC, f. eks).
Et MVC-rammeverk skiller mellom logikk, modeller og view/utseende (Model, View, Controller). Modeller og kontrollere er gjerne skrevet som klasser, som ikke vil bli kjørt med mindre man kaller de opp. Det er dette man bruker en bootstrapper til. Man bruker gjerne URL-feltet til å bestemme en kontroller. F.eks. index.php/home. Da må man ha en index-fil som laster inn et objekt assosiert med query-stringen
home.
Selv koder jeg alltid på et hjemmesnekra rammeverk der en Controller kan se slik ut:
Kode
<?php
class HomeController extends AppController {
public function main($args=false) {
// Annen kode her. hent info fra modeller/databaser etc.
$this->view('HeaderView');
$this->view('HomeView');
$this->view('FooterView');
}
}
?>
Problemet er at koden over ikke vil gjøre noen verdens ting om det ikke blir opprettet et objekt av den, og at main-funksjonen blir kalt opp. Derfor må vi ha en bootstrapper (gjerne inkludert i index-filen) som kan gjøre det nevnte.
Kode
<?php
$controllerToRun = 'HomeController'; // hent fra URL-feltet
$methodToRun = 'main'; // hent fra URL-feltet
$methodArguments = array(); // hent fra URL-feltet
$controller = new $controllerToRun;
if ( method_exists($controller, $methodToRun) ) {
call_user_func_array(array($controller, $methodToRun), $methodArguments);
}
?>
Håper det nå er litt klarere hva en bootstrapper er