bonfim / router
一个快速且强大的路由器,可以将路由回调映射到特定的HTTP请求方法和URI。它支持参数和模式匹配
v1.0.2
2018-08-26 17:55 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-06 14:48:48 UTC
README
安装
通过 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
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 以获取详细信息。
安全
如果你发现任何安全问题,请通过电子邮件 inbox.edsononildo@gmail.com 报告,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。