Stel ik maak een programma met MVC structuur die via de url weet welke bestanden hij moet laden maak of gewoon 1 index.php waarin een grote switch staat. Wat werkt sneller?

bijvoorbeeld:
(MVC)
<?php
include($_GET['action']);
$controller = new $_GET['action']();
$controller->$_GET['function']();
?>
of (met een Switch)

<?php
switch($_GET['action']) {
case "account":
switch($_GET['function']) {
case "login":
echo "loginpagina";
break;
}
break;
}
//ENZOVOORTS

?>

Het word best wel een groote website werkt het snelst?
Met vriedelijke groet,

Dennis Sluijk


Test het zelf met [php]microtime[/php]. Niet dat het er toe doet, want als je optimaliseert voor snelheid doe je dat daar waar het meeste winst te behalen valt. Dit verschil is zo klein dat je dat in de praktijk niet zal merken.
Lijkt me duidelijk. Het eerste.
Reden: als je bij een één grote pagina een deeltje daarvan opvraagt, gaat de PHP parser door de hele site heen, wat nergens voor nodig is.

Als je met meerdere pagina's werkt, heb je gewoon een klein stukje code.
De rest heb je toch niet nodig :)

Wat wel handig is met een switch, is bijvoorbeeld een berichten systeem.
Hoeft niet perse met een switch, kan ook via URL parameters.
Denk daarbij bijvoorbeeld aan een berichtensysteem: berichten.php?inbox - berichten.php?outbox - etc...
Mocht je het eerste gaan gebruiken, denk dan alsjeblieft aan de beveiliging.
Ik gebruik het mvc pattern omdat het best wel logisch was :P Dankjewel allemaal :D

Reageren