PHP 路由库为 PHP 应用程序提供灵活易用的路由系统

1.0.2 2024-08-04 19:27 UTC

This package is auto-updated.

Last update: 2024-09-04 20:09:11 UTC


README

概述

RF PHP 路由库为 PHP 应用程序提供灵活易用的路由系统。它支持从单独的文件注册路由,设置维护和404页面处理器,以及定义使用各种 HTTP 方法的路由。此外,它还支持路由分组,以组织在公共前缀下的路由。

安装

  1. 通过 Composer 安装

    确保您已安装 Composer。运行以下命令将 RF PHP 路由库添加到您的项目中

    composer require refkinscallv/router
  2. 自动加载依赖项

    确保您的项目 vendor/autoload.php 在应用程序入口点中被要求。

    require 'vendor/autoload.php';

使用

导入库

在使用路由方法之前,您需要从 RF\Router 命名空间导入 Route 类。这是通过 use 语句完成的

use RF\Router\Route;

此行代码允许您使用 Route 类方法,而不必每次都编写完整的命名空间。

1. 从单独的文件注册路由

您可以使用 Route::register 方法从不同的文件注册路由

Route::register([
    'example/route/other'
]);

2. 全局设置

维护页面

定义维护页面处理器

Route::setMaintenance(function() {
    echo "Maintenance Page";
});

// OR

require 'example/page/maintenance.php';
Route::setMaintenance([RF\Page\Maintenance::class, 'index']);

404 页面

定义404页面处理器

Route::set404(function() {
    echo "Page Not Found";
});

// OR

require 'example/page/page404.php';
Route::set404([RF\Page\Page404::class, 'index']);

3. 基本路由使用

使用不同的 HTTP 方法定义路由

Route::get('', function() {
    echo "Default Page";
});

// OR

require 'example/page/default.php';
Route::get('', [RF\Page\DefaultPage::class, 'index']);

HTTP 方法

  • Route::set - 设置路由的通用方法(默认为 GET)
  • Route::get - GET 请求
  • Route::post - POST 请求
  • Route::put - PUT 请求
  • Route::delete - DELETE 请求
  • Route::patch - PATCH 请求
  • Route::options - OPTIONS 请求

4. 带参数的路由

定义带可选或必选参数的路由。可选参数在路由模式中以 ? 表示,表示该参数不是必需的,可以在 URL 中省略。

示例

定义带可选参数的路由

Route::get('/param/{id?}', function($id) {
    echo 'Add param: ' . ($id ? $id : 'No parameter provided');
});

使用

  • 带参数

    URL: /param/123
    输出: 添加参数: 123

  • 不带参数

    URL: /param
    输出: 添加参数: 未提供参数

5. 路由分组

将路由分组在公共前缀下

Route::group(['prefix' => '/parent/path'], function() {
    Route::get("", function() {
        echo "Default Page for /parent/path";
    });

    Route::get("/child", function() {
        echo "Path /child page of /parent/path";
    });
});

5. 运行路由器

最后,执行路由器以处理传入的请求

Route::run();

贡献

如果您想为此库的开发做出贡献,请提交一个 pull request 或在 GitHub 上打开一个问题。

许可

此库受 MIT 许可证许可。有关详细信息,请参阅 LICENSE 文件。