fhooe/router

一个用于教育目的的简单面向对象的路由器。

v1.0.0 2024-02-05 15:22 UTC

This package is auto-updated.

Last update: 2024-09-05 16:44:15 UTC


README

fhooe/router 是为奥地利应用科学大学哈根贝格校区媒体技术与设计专业的 PHP 类开发的一个简单面向对象的路由器。它主要用于教育目的(学习路由和面向对象原则)。其功能设计上有限(例如,仅支持 GET 和 POST 协议)。请在自行承担风险的情况下用于“公开”应用程序。

安装

在项目中使用 fhooe-router 的推荐方法是使用 Composer

composer require fhooe/router

或者,您可以使用 fhooe/router-skeleton 项目,该项目提供了一个基于 fhooe/router 的完全工作的示例(包括一些简单的视图)

composer create-project fhooe/router-skeleton path/to/install

Composer 将在 path/to/install 目录中创建一个项目。

基本用法

fhooe/router 可以用两种方式使用

使用 Router 对象(推荐)

  1. 实例化 Router 类。

    $router = new Router();
  2. 使用 get()post() 方法定义路由。提供一个 URI 模式进行匹配,并提供一个回调,当模式和协议都匹配时执行。

    $router->get("/", function() {
        // e.g., load a view
    });
  3. 设置一个 404 回调以加载视图或触发无路由匹配时的行为。

    $router->set404Callback(function() {
        // e.g., load a 404 view
    });
  4. 可选:如果您的应用程序不在服务器的文档根目录中,请定义一个基本路径。

    $router->setBasePath("/path/to/your/files");
  5. 运行路由器。这将获取当前 URI,将其与定义的路由进行匹配,并在找到匹配项时执行它们。

    $router->run();

使用静态路由方法 Router::getRoute()

  1. 调用静态方法。如果您的项目不在服务器的文档根目录中,请提供基本路径作为参数。该方法返回形式为 PROTOCOL /pattern 的字符串形式的路由,例如,当对根目录发出 GET 请求时,返回 GET /

    $route = Router::getRoute("/path/to/your/files");
  2. 使用条件表达式来决定如何处理匹配的路由。

    switch($route) {
        case "GET /":
            // e.g., load a view
            break;
        default:
            // e.g., load the 404 view
            break;
    }

静态方法主要用于快速获取路由字符串。它提供较少的功能,例如,没有反向路由解析。

贡献

如果您想贡献,请参阅 CONTRIBUTING 以获取详细信息。

许可协议

fhooe/router 使用 MIT 许可协议。有关更多信息,请参阅 LICENSE