PHP的灵活强大的路由系统。

1.0.1 2023-06-18 01:30 UTC

This package is auto-updated.

Last update: 2024-09-18 04:41:53 UTC


README

Maintainer Source Code PHP from Packagist Latest Version Software License Build Quality Score Total Downloads

关于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 许可证。