page d'accueil */ $R->get('/?', function(){ header('Location: /dashboard/'); }); /* (2) Liste des pages du site */ $page_list = [ 'dashboard', 'profile', 'machines', 'users', 'groups', 'analytics', 'settings' ]; // nomPage/arg1/arg2 -> inclusion de la page $R->get('(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); /* (3) Dispatcher */ $R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); }); /* (4) api/module/method -> Api */ $R->post('api(?:/(.*))?', function($url){ $request = ModuleRequest::fromPost($url, $_POST); $answer = $request->dispatch(); // Si c'est une réponse (et non un download) if( $answer instanceof ModuleResponse ) echo $answer->serialize(); }); /* (5) N'importe -> page d'accueil */ $R->get('.+', function(){ header('Location: /dashboard/'); }); $R->post('.+', function(){ header('Location: /dashboard/'); }); /* (3) On lance le routeur ---------------------------------------------------------*/ $R->run(); ?>