PHP code example of kittenphp / router

1. Go to this page and download the library: Download kittenphp/router library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kittenphp / router example snippets



kitten\component\router\RouteCollector;
use kitten\component\router\RouteTracker;

$url=$_SERVER['REQUEST_URI'];
//$url='/news';
$router= new RouteCollector();
$router->get('/','HomeController@index');
$router->get('/news','NewsController@index');
$tracker=new RouteTracker($router->getRouteNodes());
$result=$tracker->search($url,'GET');
if (is_null($result)){
    //No matching routes found
    echo '404 Not Found';
}else{
    $controller=$result->getRouteNode()->getCallable();
    echo $controller; //Output: 'NewsController@index'
}

$router= new RouteCollector();
$router->get($uri, $callback);
$router->post($uri, $callback);
$router->put($uri, $callback);
$router->patch($uri, $callback);
$router->delete($uri, $callback);
$router->options($uri, $callback);

$router->get('/',function (){
   return 'hello world'; 
});

$url='/';
$router= new RouteCollector();

$router->get('/',function (){
    return 'hello world!';
});

$tracker=new RouteTracker($router->getRouteNodes());
$result=$tracker->search($url,'GET');
if (is_null($result)){
    //No matching routes found
    echo '404 Not Found';
}else{
    $controller=$result->getRouteNode()->getCallable();
    echo $controller();    //Screen display: 'hello world!'
}

$url='/article/2010/01';
$router= new RouteCollector();
$router->get('/article/{year}/{month}','ArticleController@get')->where(['year'=>'[0-9]{4}','month'=>'[0-9]{2}']);

$tracker=new RouteTracker($router->getRouteNodes());
$result=$tracker->search($url,'GET');
$args=$result->getCallParameters();
print_r($args);  //print 'Array ( [year] => 2010 [month] => 01 )'

$router->group('/article',function (RouteCollector $router){    
    $router->get('/','ArticleController@index');           //Matching path:/article/
    $router->get('/add','ArticleController@add');          //Matching path:/article/add
    $router->get('/remove','ArticleController@remove');    //Matching path:/article/remove
});

$router->group('/article',function (RouteCollector $router){
   $router->group('/business',function (RouteCollector $router){
      $router->get('/add','ArticleController@add'); //Matching path:/article/business/add
   });
});

$router->group('/admin',function (RouteCollector $router){
    $router->get('/','Admin@index');
})->middleware('Auth');

$tracker=new RouteTracker($router->getRouteNodes());
$result=$tracker->search($url,'GET');
$m= $result->getRouteNode()->getMiddleware();
print_r($m);      //Print out: Array ( [0] => Auth )

$router->get('/admin','Admin@index')->middleware(['MiddleA','MiddleB','MiddleC']);

$router= new RouteCollector();
$router->get('/article/{year}/{month}','ArticleController@get')->where(['year'=>'[0-9]{4}','month'=>'[0-9]{2}'])->setName('ReadArticle');

$tracker=new RouteTracker($router->getRouteNodes());
$url= $tracker->generateUrl('ReadArticle',['year'=>'2020','month'=>'08']);
echo $url;  //print out: '/article/2020/08'