lancerhe/php-router

该软件包最新版本(v1.0.0)没有可用的许可证信息。

一个适用于 PHP 5.3+ 的 RESTful、灵活的 MVC 路由组件。声明规则,将 HTTP 请求路由到控制器。

v1.0.0 2016-05-04 09:47 UTC

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.
}