esase / tiny-router
适用于HTTP和控制台应用的灵活路由系统组件
v1.0.5
2020-09-10 05:36 UTC
Requires
- php: ^7.4 || ^8.0
- esase/tiny-http: ^1.0.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.2
- phpunit/phpunit: ^9.0 || ^10.0
This package is auto-updated.
Last update: 2024-09-19 23:11:46 UTC
README
Tiny/Routing - 它是介于外部世界(如浏览器或控制台命令CLI)和您的应用程序之间的一个层。该软件包可以集成到任何现有的php
项目中,且不需要任何额外的包。
通常路由包含两个主要部分
-
路由
- 描述元信息,如 - 一个查询
、查询类型
和负责处理所有传入请求的控制器
。 -
路由器
- 仅保存已注册的路由,并将传入请求与已注册的路由匹配。
因此,它要么返回一个匹配的路由,要么在找不到路由时触发一个异常
。
当前的路由实现非常简单,但同时又非常强大。它允许您使用纯请求(字面量
)和基于正则表达式的请求与之交互,同时它还支持通过HTTP请求类型(如:GET
、POST
等)过滤请求。
您还可以将其用作CLI
项目的路由。
那么,让我们看一下HTTP路由的例子
// create an instance of the router $router = new Router(new RequestHttpParams($_SERVER)); // a literal `home` route $router->registerRoute(new Route( '/', 'HomeController', 'index' )); // a literal `users` route which accepts only `GET` and `POST` requests $router->registerRoute(new Route( '/users', 'UserController', // list of actions [ 'GET' => 'list', 'POST' => 'create' ] )); // a more complex example using a `RegExp` rule $router->registerRoute(new Route( '|^/users/(?P<id>\d+)$|i', // it's matches to: `/users/1`, `/users/300`, etc 'UserController', [ 'GET' => 'view', 'DELETE' => 'delete', ], 'regexp', ['id'] )); // now get a matched route $matchedRoutes = $router->getMatchedRoute();
安装
运行以下命令安装此库
$ composer require esase/tiny-router
文档
https://tiny-docs.readthedocs.io/en/latest/tiny-router/docs/index.html