bonfim/router

一个快速且强大的路由器,可以将路由回调映射到特定的HTTP请求方法和URI。它支持参数和模式匹配

v1.0.2 2018-08-26 17:55 UTC

This package is auto-updated.

Last update: 2024-09-06 14:48:48 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

安装

通过 Composer

$ composer require bonfim/router

基本用法

包含 composer 的自动加载器

<?php

include 'vendor/autoload.php';

并定义你的路由

use Bonfim\Router\Route;

Route::get('/', function () {
    echo 'Hello World!';
});

路由

路由是通过匹配URL模式和回调函数来完成的

Route::get('/', function () {
    echo 'Hello World!';
});

回调可以是任何可调用的对象。因此,你可以使用常规函数

function hello()
{
    echo 'Hello World!';
}

Route::get('/', 'hello');

或者类方法

class Greeting
{
    public static function hello()
    {
        echo 'Hello World!';    
    }
}

Route::get('/', ['Greeting', 'hello']);

或者对象方法

class Greeting
{
    private $name;

    public function __construct()
    {
        $this->name = 'Edson Onildo';
    }

    public function hello()
    {
        echo 'Hello, {$this->name}!';    
    }
}

$greeting = new Greeting();

Route::get('/', [$greeting, 'hello']);

路由的匹配顺序是它们被定义的顺序。第一个匹配请求的路由将被调用。

方法路由

路由器允许你注册响应任何HTTP动词的路由

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

你可以使用 match 方法注册响应多个动词的路由

Route::match(['get', 'post'], '/', function() {
    //
});

或者,你也可以使用 any 方法注册响应所有HTTP动词的路由

Route::any('/', function() {
    //
});

命名参数

你可以在路由中指定命名参数,这些参数将被传递到回调函数中

Route::get('/@name/@id', function($name, $id) {
    echo "hello, $name ($id)!";
});

你还可以通过使用冒号分隔符(:)在你的命名参数中包含正则表达式

Route::get('/@name/@id:[0-9]{3}', function($name, $id) {
    // This will match /bob/123
    // But will not match /bob/12345
});

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

测试

$ composer test

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

安全

如果你发现任何安全问题,请通过电子邮件 inbox.edsononildo@gmail.com 报告,而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件