sutija/php-router
Composer 安装命令:
composer require sutija/php-router
包简介
PHP Router for simpler coding.
README 文档
README
Minimum requirement PHP 7.1
Installation:
composer require sutija/php-router
Usage:
Using as callback function:
<?php $router = \Sutija\Router\Router::getInstance(); $routeArticles = new \Sutija\Router\Route(); $routeArticles ->setRoute('/articles/:alias') ->setAllowedMethods(['GET']) ->setCallback(function() use ($router) { // Get alias from route $alias = $router->getRouteData()->getData('alias'); // Do something... }); $router->addRoute($routeArticles); $router->resolve();
Using as class:
<?php class ArticlesController { public function resolve() { $alias = \Sutija\Router\Router::getInstance()->getRouteData()->getData('alias'); // Do something... } public function resolveGet() { $alias = \Sutija\Router\Router::getInstance()->getRouteData()->getData('alias'); $otherParam = \Sutija\Router\Router::getInstance()->getRouteData()->getData('other_param'); // Do something... } } $router = \Sutija\Router\Router::getInstance(); $routeArticles = new \Sutija\Router\Route(); $routeArticles ->setRoute('/articles/:alias/something/:other_param') ->setAllowedMethods(['GET', 'POST']) ->setCallback(new ArticlesController()); $router->addRoute($routeArticles); $router->resolve();
In the above example when we do the request with GET method router will try to find resolveGet method in ArticleController and try to execute it. In case that's not found it will try to execute resolve method.
Using as static method:
<?php class ArticlesController { public static function resolveGet() { $alias = \Sutija\Router\Router::getInstance() ->getRouteData() ->getData('alias'); // Do something... } public static function resolvePost() { $alias = \Sutija\Router\Router::getInstance() ->getRouteData() ->getData('alias'); // Do something... } } $router = \Sutija\Router\Router::getInstance(); $routeArticles = new \Sutija\Router\Route(); $routeArticles ->setRoute('/articles/:alias') ->setAllowedMethods(['GET', 'POST']) ->setCallback(ArticlesController::class); $router->addRoute($routeArticles); $router->resolve();
In the above example when we do the request with GET method router will try to find static resolveGet method in ArticleController and try to execute it. In case that's not found it will try to execute static resolve method.
To access query params use:
// GET /articles/rainbow/?colors=10&height=20 $queryParams = \Sutija\Router\Router::getInstance()->getRouteData()->getQueryParams(); // [color => 10, height => 20] echo \Sutija\Router\Router::getInstance()->getRouteData()->getQueryParam('colors'); // 10
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-12-14