A simple php Router
We have 3 important files here
- htaccess: Redirects all requests to home.php
- home.php: You can manage all requests in this file
- ROUTE.php: This is ROUTE lib you need to manage requests in home.php
Add ROUTE.php in home.php and then use it to manage requests:
<?php
//add router class
include_once 'ROUTE.php';
?>
we have 4 functions in order to manage requests:
- get: manages GET (method) requests.
- post: manages POST (method) requests for example forms and etc.
- go: manages both GET and POST requests
- addHookFunction:this method runs per each request.
here we have some examples:
<?php
//example 1 : using html or php
ROUTE::get('/login',function(){
//your page
echo '<h1>my login page</h1>';
});
//example 2 : include files
ROUTE::go('get','/register',function(){
include 'pages/register.php';
});
//example 3 : for both get and post methods
ROUTE::go('get|post','/logout',function(){
echo '<h1>logout page</h1>';
});
//example 4 : using regex
ROUTE::go('get','/show/{id:^\d*$}',function($id){
echo '<h1>your numeric id is : '.$id.'</h1>';
});
ROUTE::post('/show/{id:^\d*$}',function($id){
echo '<h1>your numeric id is : '.$id.'</h1>';
});
//example 5 : change to asp page
ROUTE::get('/login.aspx',function(){
//your page
echo '<h1>my login page</h1>';
});
?>
URLs can be matched by REGEX.
addHookFunction can be used to trace or takeing some actions before routing.
here is an example of addHookFuncion :
<?php
//using add addHookFunction
ROUTE::addHookFunction(function($data){
print_r($data);//show data
});
?>
you can use $data variable in addHookFunction to access requests.
note: addHookFuncion must be written before any routes an home.php to work correctly.
Iranian people can visit here for persian tutorials about this router.
This project is licensed under the GPL-3.0 License - see the LICENSE.md file for details
in order to developement or debug, you can create pull requests.