定制 yusukezzz/routing 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yusukezzz/routing

Composer 安装命令:

composer require yusukezzz/routing

包简介

Simple and fast request router for PHP

README 文档

README

Build Status

This library forked from nikic/FastRoute.

Very thanks to nikic and other contributors of FastRoute.

Install

Require this package in your composer.json

"yusukezzz/routing": "dev-master"

Usage

<?php
require_once __DIR__ . '/path/to/vendor/autoload.php';

$router = new \yusukezzz\Routing\Router();

$router->get('/', function()
{
    return 'Hello world.';
});

$router->get('/user/:name', function($name)
{
    return "Hello {$name}";
});

echo $router->handle($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);

run in PHP builtin server

php -S localhost:8080 router.php

Reverse routing

// set third parameter to define named route
$router->get('/hoge/:piyo', function($piyo){}, 'a_named_route');
echo $router->urlFor('a_named_route', ['piyo' => 'abc']);
// output is '/hoge/abc'

If you want to use Controller like routing, you should implement RouteHandlerInterface.

<?php
require_once __DIR__ . '/../vendor/autoload.php';

class PhotoController
{
    public function index()
    {
        return 'photo list';
    }

    public function show($id)
    {
        return "show photo id {$id}";
    }
}

class Handler implements \yusukezzz\Routing\RouteHandlerInterface
{
    /**
     * @param \yusukezzz\Routing\Route $route
     * @return mixed
     */
    public function handleRoute(\yusukezzz\Routing\Route $route)
    {
        list($controller, $method) = explode('@', $route->getHandler());
        $handler = [new $controller, $method];

        return call_user_func_array($handler, $route->getVariables());
    }
}

$handler = new \Handler();
$router = new \yusukezzz\Routing\Router($handler);

$router->get('/photo', 'PhotoController@index');
$router->get('/photo/:id', 'PhotoController@show');


echo $router->handle($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-03-12