packfire/router

此包已被弃用且不再维护。未建议替代包。

URL路由,更简单。

1.1.1 2014-03-05 22:44 UTC

This package is not auto-updated.

Last update: 2021-05-14 22:09:12 UTC


README

#Packfire Router

Build Status

适用于PHP 5.3+的快速且简洁的URL路由器。

  • 无额外功能的URL到回调路由
  • 通过有效的OOP设计快速路由分配
  • 可扩展且丰富的API

安装

使用Composer安装"packfire/router": "1.0.*"

  1. 下载composer.phar
  2. composer.json中的"require"配置下添加"packfire/router": "1.0.*"
  3. 运行php composer.phar install以安装Packfire Router。

从配置中加载路由

简单地从您喜欢的任何配置格式中加载您的路由

use Packfire\Router\FileLoader;

$loader = new FileLoader('config/routes.yml'); // loading from a YAML file
$loader = new FileLoader('config/routes.json'); // loading from a JSON file
$loader = new FileLoader('config/routes.php'); // or loading from a PHP file that returns an array of configuration

// create the Router object using the configuration
$router = $loader->load();

一个示例配置如下(YAML格式)

routes:
  home:
    path: /
    method: get
    action: HeartCode\Blog\Controller::index
  post:
    path: /post/:id-:title
    method: get
    params:
      id: i
      title: slug
    action: HeartCode\Blog\Controller:view

##路由请求

路由请求很简单

use Packfire\Router\FileLoader;
use Packfire\Router\CurrentRequest;

$loader = new FileLoader('config/routes.yml');
$router = $loader->load();

// load data from $_SERVER
$request = new CurrentRequest();

// Get the route based on the current request
$route = $router->route($request);

有了$route对象,您可以通过简单地运行回调来轻松执行$route

// performs the action that the route needs to
$route->callback();

##从路由生成URL

您可以通过将路由和参数放入表单来执行反向工程,形成其完整的有效URL

use Packfire\Router\FileLoader;    

$loader = new FileLoader('config/routes.yml');
$router = $loader->load();

$url = $router->generate('post', array('id' => 412, 'title' => 'maybe-this-works'));

$url可能等于/post/412-maybe-this-works