bistro / router
适用于PHP >= 5.3的路由引擎
1.0.2
2013-04-30 18:36 UTC
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-23 10:47:07 UTC
README
一个独立的PHP >= 5.3路由引擎。
安装
全程使用Packagist!
"require": { "bistro/router": "1.0.*" }
当然,您也可以始终在GitHub上 下载源代码的zip包。
创建路由
$router = new \Bistro\Router\Router; $router->add('home', '/')->defaults(array( 'controller' => 'welcome', 'action' => 'view' ));
检查匹配
$method = $_SERVER['REQUEST_METHOD']; $uri = isset($_SEVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/'; $params = $router->match($method, $uri); // $params = array('controller' => 'welcome', 'action' => 'view');
如果从 match()
返回一个空数组,表示没有与请求匹配的结果。可能是404错误时间!
命名路由段
您可以使用 :{name} 为您的路由提供命名段。
$router->add('crud', '/:controller/:action/:id?')->defaults(array( 'id' => null ));
您可以在命名段的末尾放置一个 ?,使此段可选。
添加约束
如果您想要向命名段添加约束,可以在 :
前面放置一个有效的正则表达式。
$router->add('id_only', '/:controller/user|post:action/\d+:id');
在此路由中,动作必须是 user 或 post,并且 id 是一个整数。
基于方法的路由
只想获取某些请求方法?只需使用辅助方法即可。
$router->post('login', '/login')->defaults(array('controller' => 'login', 'action' => 'process'));
可用的辅助方法有 get
、post
、put
和 delete
。
通配符
想要获取URL末尾的所有内容?很简单!
$router->add('wildcard', '/:controller/.*:wildcard')
添加请求方法默认值
构建API并想为每种请求方法添加不同的参数?
$router->add('api', "/:controller/\d+:id?") ->get(array('action' => 'read')) ->post(array('action' => 'create')) ->put(array('action' => 'update')) ->delete(array('action' => 'delete'));
反向路由
使用内置的反向路由功能以合理的方式跟踪您的URL。
真的...不要将URL手动输入到您的应用程序中!这要容易得多,并且允许有更大的灵活性。
$router->add('reverse', '/blog/:year/:month/:day'); // Reverse Routing magic! echo $router->url('reverse', array( 'year' => 2013, 'month' => 03, 'day' => 31 )); // Output: /blog/2013/03/31
子目录安装?
如果您已将应用程序安装在一个子目录中,您可以将此信息添加到路由器中,一切仍然会按预期工作。
$router = new \Bistro\Router\Router('subdirectory');
许可证
MIT