pedroquezado / router
PHP的灵活强大的路由系统。
Requires
- php: >=7.2
README
关于PedroQuezado
PedroQuezado/Router是一个为PHP应用或API设计的路由组件,旨在处理请求。它提供了一个简单直观的方式来定义路由和处理HTTP动词(GET、POST、PUT、PATCH、DELETE),并使用MVC模式。路由器独立工作,确保隔离并在项目中无缝集成。
安装
您可以通过Composer安装PedroQuezado Router。运行以下命令
composer require pedroquezado/router
路由器类
路由器类是路由请求的主要入口点。它提供了定义路由、处理不同的HTTP动词以及运行路由器以匹配和执行适当路由处理程序的方法。
用法
要在您的应用程序中使用Router类,请按照以下步骤操作
- 在项目的根目录中创建一个index.php文件。
- 使用Composer的自动加载器加载所需的文件。
- 实例化Router类并定义您的路由。
- 分发路由。
以下是如何使用Router类的示例
<?php require 'vendor/autoload.php'; use PedroQuezado\Code\Router\Router; $router = new Router('example.com'); $router->get('/', function () { echo 'Hello, world!'; }); $router->post('/user', 'UserController::create'); $router->put('/user/{id}', 'UserController::update'); $router->delete('/user/{id}', function ($id) { echo "Deleting user with ID: $id"; }); $router->run();
在上面的示例中,我们实例化了Router类,使用get()、post()、put()和delete()方法定义了不同的路由,并最终调用run()方法来分发路由。
方法
get($path, $callback)
定义HTTP GET请求的路由。
- $path: 路由的路径。
- $callback: 当路由匹配时执行的回调函数或类方法。
post($path, $callback)
定义HTTP POST请求的路由。
- $path: 路由的路径。
- $callback: 当路由匹配时执行的回调函数或类方法。
put($path, $callback)
定义HTTP PUT请求的路由。
- $path: 路由的路径。
- $callback: 当路由匹配时执行的回调函数或类方法。
patch($path, $callback)
定义HTTP PATCH请求的路由。
- $path: 路由的路径。
- $callback: 当路由匹配时执行的回调函数或类方法。
delete($path, $callback)
定义HTTP DELETE请求的路由。
- $path: 路由的路径。
- $callback: 当路由匹配时执行的回调函数或类方法。
注意: $path参数可以包含用花括号{}括起来的占位符,以捕获URL的动态段。这些占位符可以在回调函数或类方法中作为参数访问。
构造函数
Router类构造函数接受基础URL作为其参数。此基础URL用于在应用程序中生成正确的路由URL。以下是如何创建一个新的Router实例的示例
$router = new Router("https://www.yourdomain.com");
定义路由
以下是一个定义映射到闭包函数的GET路由的示例
$router->get("/home", function () { // Handle the GET /home request });
类方法回调
$router->post('/user', 'UserController::create');
在类方法回调格式中,类和方法名称由双冒号(::)分隔。
命名空间
namespace()方法允许您为将要在回调中引用的类定义一个命名空间。这对于将类组织到不同的目录或命名空间中非常有用。以下是如何使用它的示例
$router->namespace('App\Controllers'); $router->get('/users', 'UserController::index'); $router->get('/products', 'ProductController::index'); $router->namespace('App\Forms'); $router->get('/users', 'UserForms::index'); $router->get('/products', 'ProductForms::index');
在这个示例中,UserController和ProductController类位于App\Controllers命名空间中。
中间件
middleware($callback): 定义一个在路由之前执行的中间件。
Group
group($options, $callback): 定义一个路由组以共享常见配置。
分发路由
定义完您的路由后,您可以调用run()方法来分发路由并处理传入的请求。
$router->run();
run() 方法将匹配当前请求 URL 和 HTTP 方法到定义的路由中,并执行相应的回调函数或类方法。
贡献
欢迎贡献!如果您想为 PedroQuezado 路由器 做贡献,请随意提交一个问题或拉取请求。我们非常感激您的反馈和贡献,以使这个项目更加完善。
许可证 本项目采用 MIT 许可证。