sopehos / pebble_burn
PHP 烧录库
0.0.4
2023-08-25 12:30 UTC
Requires
- php: >=8.1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
服务
管理应用程序中服务的依赖关系
路由器
路由系统允许将一个处理程序与一个请求(HTTP / CLI)关联起来。
路由器 \Pebble\Burn\Router
是一个单例。
添加路由
add($http_method, $uri, $controller, $method = null) : Router
方法允许添加一个新路由。这个方法是链式的。
$http_method
HTTP 请求方法(GET、POST、...)或 CLI。$uri
与路由对应的 URI。$controller
控制器名称 OR 一个callable
元素。$method
如果控制器不是callable
类型,则控制器方法的名称。
快捷方式
get($uri, $controller, $method = null) : Router
post($uri, $controller, $method = null) : Router
put($uri, $controller, $method = null) : Router
patch($uri, $controller, $method = null) : Router
delete($uri, $controller, $method = null) : Router
options($uri, $controller, $method = null) : Router
cli($uri, $controller, $method = null) : Router
URI
URI 可以是正则表达式。由括号捕获的段被作为参数传递给回调函数。对于动态路由,正则表达式和通配符必须被括号包围。
示例
Router::getInstance()->get('/user/{any}', function($num) { echo 'User n°' . $num; });
通配符
通配符是用于更简单地编写正则表达式的片段。
{all}
0 到 n 个非斜杠(/
)字符{any}
1 到 n 个非斜杠(/
)字符{num}
1 到 n 个数字字符{hex}
1 到 n 个十六进制字符{uuid}
一个类似于 RFC 4122 中定义的 UUID
添加通配符
Router::getInstance()->wildcard('date', '[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}');
执行路由
$http_method = $_SERVER['REQUEST_METHOD']; $uri = parse_url('http://dummy' . $_SERVER['REQUEST_URI'], PHP_URL_PATH); Router::getInstance()->run($http_method, $uri)->execute();
异常
如果找不到路由或其回调函数不可调用,将抛出 \Pebble\Burn\RouteException
类型错误。