From 782141717ab4f194bc4c04ad0b12ae9ab97f241a Mon Sep 17 00:00:00 2001 From: SteamPixel Date: Thu, 10 Sep 2015 14:09:42 +0200 Subject: [PATCH] Added more example rules and comments. --- .htaccess | 10 +++++++--- Route.php | 2 +- index.php | 34 ++++++++++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.htaccess b/.htaccess index 9681cf0..b3df3bb 100644 --- a/.htaccess +++ b/.htaccess @@ -1,10 +1,14 @@ DirectoryIndex index.php - + +#enable apache rewrite engine RewriteEngine on - + +#set your rewrite base RewriteBase / - + +#Deliver the folder or file if it exists on the server directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d +#Push every request to index.php RewriteRule ^(.*)$ index.php [QSA] \ No newline at end of file diff --git a/Route.php b/Route.php index 09255b0..584697e 100644 --- a/Route.php +++ b/Route.php @@ -8,7 +8,7 @@ class Route{ public static function init(){ - $parsed_url = parse_url($_SERVER['REQUEST_URI']);//URI zerlegen + $parsed_url = parse_url($_SERVER['REQUEST_URI']);//Parse Uri if(isset($parsed_url['path'])){ self::$path = trim($parsed_url['path'],'/'); diff --git a/index.php b/index.php index a05a55e..af52936 100644 --- a/index.php +++ b/index.php @@ -10,12 +10,18 @@ Config::set('basepath',''); //init routing Route::init(); -//base route +//base route (startpage) Route::add('',function(){ //Do something echo 'Welcome :-)'; }); +//base route +Route::add('index.php',function(){ + //Do something + echo 'You are not realy on index.php ;-)'; +}); + //simple route Route::add('test.html',function(){ //Do something @@ -25,14 +31,34 @@ Route::add('test.html',function(){ //complex route with parameter Route::add('user/(.*)/edit',function($id){ //Do something - echo 'Edit user with id '.$id; + echo 'Edit user with id '.$id.'
'; }); - + +//accept only numbers as the second parameter. Other chars will result in a 404 +Route::add('foo/([0-9]*)/bar',function($var1){ + //Do something + echo $var1.' is a great number!'; +}); + +//long route +Route::add('foo/bar/foo/bar',function(){ + //Do something + echo 'hehe :-)
'; +}); + +//crazy route with parameters (Will be triggered on the route pattern above too because it matches too) +Route::add('(.*)/(.*)/(.*)/(.*)',function($var1,$var2,$var3,$var4){ + //Do something + echo 'You have entered: '.$var1.' / '.$var2.' / '.$var3.' / '.$var4.'
'; +}); + +//Add a 404 Not found Route Route::add404(function($url){ //Send 404 Header header("HTTP/1.0 404 Not Found"); - echo '404 :-('; + echo '404 :-(
'; + echo $url.' not found!'; });