vir-mir / router
简单的PHP路由器,支持REST和反向路由。
dev-master
2015-03-03 17:03 UTC
Requires
- php: >=5.3.3
This package is not auto-updated.
Last update: 2024-09-28 16:20:43 UTC
README
路由处理
- 可配置的HTTP方法
- REST - 方法
- 可以按组排列
- 按域名分割URL
通过 composer 安装
{ "require": { "vir-mir/router": "dev-master" } }
描述
URL配置
为 .htaccess 配置
Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*)$ index.php [NC,L]
PHP实现示例
<?php require __DIR__.'/vendor/autoload.php'; use VMRouter\RouteCollection; use VMRouter\Router; use VMRouter\Route; $collection = new RouteCollection(); $collection->attach(new Route('/users/', array( 'controller' => 'Controller\User::usersCreateAction', 'methods' => 'POST', 'domains' => ['site.ru', 'strore.site.ru'], // будет работать только на указанных доменах ))); $collection->attach(new Route('/users/(?P<user_id>\d+)/', array( 'controller' => 'Controller\User::getUAction', 'methods' => 'GET', 'domains' => ['*'] // все домены ))); $router = new Router($collection); $route = $router->matchCurrentRequest(); var_dump($route);
从文件夹中加载
<?php // index.php require __DIR__.'/vendor/autoload.php'; use VMRouter\Router; use VMRouter\RouteCollection; $router = new Router(new RouteCollection()); $route = $router ->setRoutesDir(__DIR__ . '/router/') // путь до папки с Routes ->setRoutes() ->matchCurrentRequest(); var_dump($route);
<?php // router/urers.php use VMRouter\Route; $routes = []; array_push($routes, new Route('/users/', array( 'controller' => 'someController::users_create', 'methods' => 'GET' ))); array_push($routes, new Route('/users/(?P<user_id>\d+)/cover/', array( 'controller' => 'someController::users_create', 'methods' => 'GET' ))); array_push($routes, new Route('/users/(?P<user_id>\d+)/', array( 'controller' => 'someController::users_create', 'methods' => 'GET' ))); return $routes;