webcretaire/diggy-router

PHP 的简单路由组件

v1.5.0 2018-07-05 22:15 UTC

This package is auto-updated.

Last update: 2024-09-29 05:01:23 UTC


README

Latest Stable Version Total Downloads License Build Status

PHP 的简单路由组件

安装

目前唯一的安装方式是通过 composer

composer require webcretaire/diggy-router

基本用法

首先,您需要在具有以下结构的 YAML 文件中注册您想要使用的路由

routes:
  # First Route
  - uri: '/addressOfYourPage'
    controller: 'Name\Of\A\Class'
    action: 'nameOfTheFunctionToCall'
  # Second Route
  - uri: '/addressOfYourSecondPage'
    controller: 'Name\Of\A\Class'
    action: 'nameOfTheFunctionToCall'
  # ...

注意,“action”参数是可选的,如果没有提供,路由器将尝试调用不带参数的“render()”函数

然后创建一个新的路由器

$router = new DiggyRouter\Router()

将您的路由加载到路由器中

$router->loadRoutes("path/to/your/routing.yml");

使用路由器根据请求的 URI 调用正确控制器中的正确函数

$router->handleRequest();

高级用法

默认情况下,路由器会尝试查找与存储在 $_SERVER['REQUEST_URI'] 中的请求 URI 匹配的路由,但您可以通过将 URI 传递给函数来指定要使用的 URI

$router->handleRequest($customURI);

DiggyRouter 现在支持一个路由多个 URI,您只需将您的路由的 uri 参数定义为数组即可

routes:
  - uri: 
      - '/firstPage'
      - '/secondPage'
    controller: 'Name\Of\A\Class'
    action: 'nameOfTheFunctionToCall'
  # ...

如果您有复杂的 URI,您可以指定一个表达式,请求的 URI 必须匹配。默认分隔符是 '~',但您可以通过以下方式指定要使用哪个

$router->setDelimiter('YourDelimiter');

如果您有很多 URI,您可以将您的路由在主路由文件和任意数量的辅助文件之间进行拆分

# Main routing file
includes:
  - 'secondRoutingFile'
  - 'thirdRoutingFile'

routes:
  - uri: '/SomeAdditionnalRoutes'
    controller: 'Name\Of\A\Class'
  # ...
# Second routing file
routes:
  - uri: '/RoutesEverywhere'
    controller: 'Name\Of\A\Class'
  # ...

示例

您可以在此路由文件中看到一个完整的示例