jonahh/omniroute

一个简化PHP URL路由的简单框架

v1.2.1 2024-08-28 14:43 UTC

This package is auto-updated.

Last update: 2024-10-01 16:42:28 UTC


README

OmniRoute 是一个轻量级、灵活的PHP路由库,旨在简化PHP应用程序中路由的管理。它允许您定义路由,使用正则表达式处理URL参数,并管理常见HTTP响应代码的错误回调。

特性

  • 路由注册:轻松使用特定的HTTP方法和回调注册路由。
  • 前缀支持:为路由组应用前缀以有效地组织和管理工作。
  • 错误处理:为404 Not Found405 Method Not Allowed错误注册自定义回调。
  • 正则表达式参数:支持使用正则表达式动态URL参数。
  • 子路由集成:从外部文件包含和注册路由以提高模块化。

安装

composer require jonahh/omniroute

使用

基本路由注册

您可以通过调用add方法来注册一个简单路由。

use OmniRoute\Router;
require __DIR__.'/vendor/autoload.php';

Router::add('/home', function() {
    echo "Welcome to the homepage!";
});

带参数的路由

要创建带有动态参数的路由,请使用<: :>包裹的占位符。

Router::add('/user/<:id:>', function($id) {
    echo "User ID: " . $id;
});

路由前缀

您可以将路由分组到公共前缀下。

Router::registerPrefix('/api/v1');

Router::add('/users', function() {
    echo "Users endpoint";
});

设置前缀后添加的所有路由将自动包含它。

注册子路由

为了更好的模块化,您可以从外部文件加载路由。

Router::registerSubRouter('path/to/routes.php');

设置允许的方法

您可以为要调用的路由设置允许的方法。

Router::add('/api/post-only', function() {
    echo json_encode(["data"=>$data]);
}, ["POST"]);

处理错误

您可以注册自定义错误回调以处理404405错误。

Router::registerErrorCallback(OMNI_404, function($path) {
    echo "Error 404: The path $path was not found.";
});

Router::registerErrorCallback(OMNI_405, function($path, $method) {
    echo "Error 405: The method $method is not allowed for $path.";
});

运行路由器

最后,要执行路由器并处理传入的请求,请调用run方法。

Router::run();

许可证

此软件包是开源的,可在MIT许可证下获得。

作者

此软件包由 Jonah 开发。