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_methodHTTP 请求方法(GET、POST、...)或 CLI。$uri与路由对应的 URI。$controller控制器名称 OR 一个callable元素。$method如果控制器不是callable类型,则控制器方法的名称。
快捷方式
get($uri, $controller, $method = null) : Routerpost($uri, $controller, $method = null) : Routerput($uri, $controller, $method = null) : Routerpatch($uri, $controller, $method = null) : Routerdelete($uri, $controller, $method = null) : Routeroptions($uri, $controller, $method = null) : Routercli($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 类型错误。