celiovmjr / simplerouter
一个轻量级、易于使用的PHP路由器,用于构建Web应用程序。
2.0.6
2024-07-31 23:33 UTC
Requires
- php: >=8.1
README
SimpleRouter是一个PHP类,用于以简单有效的方式管理PHP Web应用程序中的路由。
安装
要使用SimpleRouter,只需将Router.php
文件包含到您的PHP项目中,并配置适当的自动加载。
<?php require_once 'Router.php';
示例用法
初始设置
use SimpleRouter\Application\Router; $router = new Router();
定义路由
基本路由
$router->get('/', function($request) { echo "Hello, GET request!"; }); $router->post('/post', [MyController::class, 'postMethod']);
路由组和子组
$router->group('/api', function() use ($router) { // Subgroup '/v2' $router->subgroup('/v2', function() use ($router) { $router->get('/users', [UserController::class, 'getAll']); $router->post('/users', [UserController::class, 'create']); }); // You can define more routes directly within the '/api' group $router->get('/status', function($request) { echo "API Status"; }); });
命名路由
$router->group('/admin', function() use ($router) { $router->get('/dashboard', function($request) { echo "Welcome to Admin Dashboard!"; })->name('admin.dashboard'); }); // Resolving a named route $route = $router->route('admin.dashboard'); // Returns '/admin/dashboard'
运行应用程序
if ($router->dispatch()) { // Route found and processed successfully } else { // Error handling $error = $router->error(); echo "Error {$error->code}: {$error->message}"; }
可用方法
- get($uri, $handler):定义一个GET路由。
- post($uri, $handler):定义一个POST路由。
- put($uri, $handler):定义一个PUT路由。
- patch($uri, $handler):定义一个PATCH路由。
- delete($uri, $handler):定义一个DELETE路由。
- group($prefix, $handler):定义一个带有前缀的路由组。
- subgroup($prefix, $handler):在现有组内定义路由子组。
- dispatch():执行路由并处理相应的路由。
- route($name):返回与命名路由关联的URI。
- error():如果有错误信息,返回一个包含错误信息的stdClass对象。
优点
- 模块化路由:轻松将路由组织到组和子组中,以维护结构化的应用程序架构。
- 灵活的路由:支持动态和静态路由、闭包和控制器方法。
- 错误处理:提供对路由分发失败的错误处理。