packfire / router
此包已被弃用且不再维护。未建议替代包。
URL路由,更简单。
1.1.1
2014-03-05 22:44 UTC
Requires
- php: >=5.3.0
- packfire/config: 1.2.*
- packfire/fuelblade: 1.2.*
This package is not auto-updated.
Last update: 2021-05-14 22:09:12 UTC
README
#Packfire Router
适用于PHP 5.3+的快速且简洁的URL路由器。
- 无额外功能的URL到回调路由
- 通过有效的OOP设计快速路由分配
- 可扩展且丰富的API
安装
使用Composer安装"packfire/router": "1.0.*"。
- 下载
composer.phar - 在
composer.json中的"require"配置下添加"packfire/router": "1.0.*"。 - 运行
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