php router
1.0.0
KODDN PHP路由器是PHP类,可以轻松处理PHP应用程序中的路由,支持多个回调,重定向并向JSON中的客户发送响应。
网站:KODDN技术
链接到文档:KODDN PHP路由器
社交媒体Koddn:Facebook,Twitter,Instagram
社交媒体开发人员:Facebook,Twitter,Instagram
与作曲家安装:
composer require koddn/php-router
获取KODDN PHP路由器
// composer auto loader
require __DIR__ . ' /vendor/autoload.php ' ;
use KODDN ROUTER ;
// match get request
ROUTER :: get ( ' / ' , function ( $ req , $ res , $ next ){
// ..do something
$ res -> send ( " Welcome to Koddn Php Router " );
});只需在项目中添加src/koddn_router.php文件即可;
// composer auto loader
require __DIR__ . ' /src/KODDN_ROUTER.php ' ;
// match get request
ROUTER :: get ( ' / ' , function ( $ req , $ res , $ next ){
// ..do something
$ res -> send ( " Thanks " );
});您可以使用模式匹配请求
在下面的示例中,我们从URL捕获用户ID
// URL => /api/user/111
ROUTER :: get ( ' /api/user/:id ' , function ( $ req , $ res ){
$ id = $ req [ ' params ' ][ ' id ' ];
// $req['params]=>['id'='111']
});在示例中,我们正在使用
// URL => /flight/india-usa
ROUTER :: get ( ' /flight/:from-:to ' , function ( $ req , $ res ){
// $req['params]=['from'=>'india','to'=>'usa'];
$ from = $ req [ ' params ' ][ ' from ' ];
$ to = $ req [ ' params ' ][ ' to ' ];
}); // URL => /post-name-apc/123
ROUTER :: get ( ' /*/:postID ' , function ( $ req , $ res ){
// $req['params']=['postID'=>'123'];
$ postID = $ req [ ' params ' ][ ' postID ' ];
// do something
});我们可以使用多个回调功能来处理路线
ROUTER :: get ( ' /some-url ' , function ( $ req , $ res , $ next ){
// Do something here
echo " START " ;
// call Next Callback, control goes to next callback function
$ next ();
}, function ( $ req , $ res ){
echo " END " ; // task completed
});另外,如果我们希望在下一个回调中引用已编辑的请求,则使用&$ req作为请求参数
ROUTER :: get ( ' /dashboard ' , function (& $ req , $ res , $ next ){
// if user authorized
$ req [ ' userID ' ]= " someUserID " ;
$ next ();
}, function (& $ req ){
// now you can have use the req.userID here as well
});示例如何将其用作身份验证的中间件
可以使用“使用”方法来实现中间。
ROUTER :: use ( ' /user ' , function ( $ req , $ res , $ next ){
ROUTER :: get ( ' /me ' , function ( $ req , $ res , $ next ) {
// do something here
});
});
// OR
ROUTER :: use ( ' /user ' , function ( $ req , $ res , $ next ){
require __DIR__ . " /routes/user.php " ; //
}); ROUTER :: post ( ' /login ' , function (& $ req , $ res , $ next ){
// do the authorize stuff here
if (!authorize){
$ res -> send ( " invalid " );
}
$ next ();
}, function (& $ req , $ res ){
// do something if authorized
// grantAccessToSomething
}); //ROUTER::redirect('/url-to-match', callbackBeforeRedirect, 'redirect to url', $replaceHeaders=false (optional), $redirectCode =301 (optional));
ROUTER :: redirect ( ' /url-to-match ' , function (){ /*do some logs*/ }, ' /new-url ' , $ replaceHeaders = false /*( boolean optional)*/ , $ redirectCode = 301 /*(int optional)*/ );使用KODDN PHP路由器,您可以手动处理响应,也可以使用内置的响应。
ROUTER :: post ( ' /about ' , function ( $ req , $ res , $ next ){
$ res -> send ( " About us " );
}); ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
$ userData =[ ' name ' => " Harpal Singh " , ' id ' => 11 ];
$ res -> json ( $ userData );
}); ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
$ res -> setStatus ( 404 )-> send ( ' Not Found ' );
}); ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
// clear all cookies
$ res -> clearCookies ();
// clear specific cookies
$ res -> clearCookies ( ' nameOfCookie ' );
// do something
}); ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
// clear Sessions
$ res -> clearSession ();
// do something
});它类似于die();
ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
// clear Sessions
$ res -> end ();
// do something
}); //ROUTER::redirect('redirect to url', $replaceHeaders=false (optional), $redirectCode =301 (optional));
ROUTER :: post ( ' /api/user ' , function ( $ req , $ res , $ next ){
// clear Sessions
$ res -> redirect ( ' /new-url ' , $ replaceHeaders = false /*(optional)*/ , $ redirectCode = 301 /*(optional)*/ );
// do something
}); ROUTER :: any ( ' /url-to-match ' , function (& $ req , $ res , $ next ){} /*, function(&$req,$res,$next){}*/ );
ROUTER :: post ( ' /url-to-match ' , function (& $ req , $ res , $ next ){} /*, function(&$req,$res,$next){}*/ );
ROUTER :: get ( ' /url-to-match ' , function (& $ req , $ res , $ next ){} /*, function(&$req,$res,$next){}*/ );
ROUTER :: put ( ' /url-to-match ' , function (& $ req , $ res , $ next ){} /*, function(&$req,$res,$next){}*/ );
ROUTER :: delete ( ' /url-to-match ' , function (& $ req , $ res , $ next ){} /*, function(&$req,$res,$next){}*/ );
ROUTER :: redirect ( ' /url-to-match ' , function (){ /*do some logs*/ }, ' /new-url ' , $ replaceHeaders = false /*( boolean optional)*/ , $ redirectCode = 301 /*(int optional)*/ ); ROUTER :: post ( ' /url-to-match ' , function (& $ req , $ res , $ next ){
//
//$req = ['$fullUrl' => $fullUrl, 'url' => $url, 'path' => $path, 'params' => $params, 'rPath' => $rPath];
}); ROUTER :: post ( ' /url-to-match ' , function (& $ req , $ res , $ next ){
//send
$ res -> send ( ' Some Text ' );
//json
$ res -> json ([ ' id ' => 11 , ' name ' => ' Harpal Singh ' ]);
//redirect using response
$ res -> redirect ( ' /new-url ' , $ replaceHeaders = false /*(optional)*/ , $ redirectCode = 301 /*(optional)*/ );
// Exit
$ res -> end ();
// clear all cookies
$ res -> clearCookies ();
// clear specific cookies
$ res -> clearCookies ();
//set Status
$ res -> setStatus ( 404 )-> send ( ' Not Found ' );
});