devceliojr/simplerouter

一个轻量级、易于使用的PHP路由器,用于构建Web应用。

1.0.6 2023-10-18 15:48 UTC

This package is auto-updated.

Last update: 2024-09-18 17:48:40 UTC


README

SimpleRouter是一个轻量级且易于使用的PHP路由器,用于构建Web应用。

功能

  • 简洁直观的语法
  • 支持动态路由和URL参数
  • 支持HTTP方法(GET、POST、PUT、PATCH和DELETE)
  • 易于定制
  • 轻量级且快速

要求

  • PHP >= 8.1

安装

您可以使用Composer安装SimpleRouter

composer require devceliojr/simplerouter

使用方法

以下是一个使用SimpleRouter的简单示例

<?php

require __DIR__ . "/vendor/autoload.php";

use SimpleRouter\Application\Router;

$router = new Router;

$router->get('/', function () {
    echo 'Hello, world!';
});

$router->dispatch();

这将创建一个新的路由器,定义主页的路由,并运行路由器。

您还可以定义带有URL参数的动态路由

$router->get('/users/{id:number}', function ($request) {
    echo "User {$request->body->id}";
});

在这个例子中,任何与模式/users/{id:number}匹配的URL都将由回调函数处理,该回调函数将接收id的值作为参数。

支持的参数类型有

  • number:只接受数字值
  • letter:只接受字母字符
  • alpha:接受字母数字字符
  • any:接受任何字符

您可以通过调用路由器上的相应函数使用除GET以外的HTTP方法

$router->post('/users', function () {
    echo "Creating user...";
});

在这个例子中,当向/users URL发送POST请求时,将执行回调函数。

您还可以在动态路由中使用HTTP动词

$router->put('/users/{id:number}', function ($request) {
    echo "Updating user {$request->body->id}...";
});

在这个例子中,当向与模式/users/{id:number}匹配的URL发送PUT请求时,将执行回调函数。

对于更复杂的应用,您可以使用嵌套路由和子组

$router->group(null, function () use ($router) {
    $router->get("/", [HomeController::class, "home"]);
});

$router->group("/admin", function () use ($router) {
    $router->get("/", [AdminController::class, "show"]);
    $router->subgroup("/financial", function () use ($router) {
        $router->get("/", [AdminController::class, "financial"]);
    });
});

在这个例子中,HomeController类处理根URL,而AdminController类处理/admin前缀下的URL。通过导航到/admin/financial来访问AdminController类的financial方法。

有关如何使用SimpleRouter的更多信息,请参阅文档

贡献

欢迎贡献!如果您想为SimpleRouter做出贡献,请打开GitHub上的一个问题或拉取请求。

许可

SimpleRouter是开源软件,许可协议为MIT许可