lancerhe / php-router
该软件包最新版本(v1.0.0)没有可用的许可证信息。
一个适用于 PHP 5.3+ 的 RESTful、灵活的 MVC 路由组件。声明规则,将 HTTP 请求路由到控制器。
v1.0.0
2016-05-04 09:47 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-05 14:48:18 UTC
README
一个适用于 PHP 5.4+ 的 RESTful、灵活的 MVC 路由组件。声明规则,将 HTTP 请求路由到控制器。
我们还需要另一个路由器吗?
已经有了大量的路由组件,为什么还需要另一个?许多现有的组件耦合紧密,编写得不好。Routa 是基于以下考虑构建的:
- RESTful
- 松耦合
- 受 Ruby on Rails 启发
- 与 PHP >= 5.3 兼容
- 优先使用约定而非配置
- 灵活和可扩展
- 自动化测试套件
安装
Routa 遵循 PSR-0 规范。如果您有兼容的自动加载器,请将 lib 目录的内容放置在您的 vendor 目录中。
基本用法
在您的代码中创建一个路由类的新实例。
$router = new LancerHe\Router\Router;
此方法自动使用当前页面 URL 和来自 $_SERVER 超全局的 HTTP 方法,您也可以覆盖它,我们稍后会介绍。
然后添加一些路由,将 URL 映射到控制器名称/操作
$router
->add('GET', '/login', 'v1#Account#login')
->add('GET', '/profile/:id', 'v1#User#view')
->add('GET', '/profile/:id/edit', 'v1#User#edit')
->add('GET', '/search/*', 'v1#Products#search');
一旦声明了所有路由,就匹配您的请求。
if($result = $router->match()) {
// Assuming the url is /profile/432
var_dump($result->getModuleName()); // returns 'v1'
var_dump($result->getControllerName()); // returns 'User'
var_dump($result->getActionName()); // returns 'view'
var_dump($result->getParams); // returns ['id' => 432]
// Load your controller…
} else {
// Display your 404 page.
}