1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<?php
//début page index ( je te laisse tester les différentes variables, celons que tu es sur un dédie ou un mutualisé elle peuvent légèrement changer
define ('HOST_PATH' ,str_replace ('index.php' , '' , $_SERVER['SCRIPT_NAME'] ) );
define ('HOST_DIR' , dirname(__FILE__).'/' );
$url = $_SERVER['REQUEST_URI'] ;
if ( HOST_PATH!='/') {
define ('DISPACHER_URL_PATH' , str_replace(HOST_PATH , "" ,$url));
}
else{
define ('DISPACHER_URL_PATH' , $url) ;
}
define("TEMPLATE_PATH_FILE",HOST_DIR.'frontEnd/theme1/');
define("TEMPLATE_PATH",HOST_PATH.'frontEnd/theme1/');
//tu crée un arbre route => controller
//les index default sont utilisés s'il n'y a pas de bon chemin ( cela évite les noPage)
$route = array(
'default' => 'page0.php',
'index' => 'page1.php',
'recapitulatif' =>
array(
'default' =>'page2.php',
'index' =>'page3.php',
'divers' =>'page4.php'
)
);
//Tu fais une fonction de traitement entre les routes et l'url
function orderListe($item, $key ,$s ){
$dataKey = array_slice($key , 0 , 1 );
$data = $dataKey[0];
if( isset($item[$data]) ){
$key = array_slice($key,1);
$s['url'][]= $data;
if(!is_array($item[$data])){
$s['module']=$item[$data];
return $s;
}else{
return orderListe($item[$data], $key,$s );
}
}else if( isset($item['default']) ){
$s['module']=$item['default'];
return $s;
}
}
$disp=explode('/',DISPACHER_URL_PATH);
$controller=orderListe($route,$disp,'' );
//print_r($controller);
/*
tu test : http://localhost/mvc/recapitulatif/divers/
maintenant tu sais que le module est pour cette page page4.php
tu appelle le template principal
*/
//petite function pour utiliser avec try, plutot qu'avec des if
function _test($x,$e) {
if (!$x) {
throw new Exception($e);
}
else
{
return 1;
}
}
try{
//tu appelle le template général, dans ce template tu appellera le module
_test(is_file(TEMPLATE_PATH_FILE.'template.php') , 'le fichier '.TEMPLATE_PATH_FILE.'template.php'.' n\'exite pas');
include TEMPLATE_PATH_FILE.'template.php';
} catch (Exception $e) {
echo "Message d'erreur: ", $e->getMessage(), "\n";
}
//FIN Index.php |
Partager