sopehos/pebble_burn

PHP 烧录库

0.0.4 2023-08-25 12:30 UTC

This package is auto-updated.

Last update: 2024-09-26 08:48:22 UTC


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 类型错误。