kiryi/routyi

Web应用程序的路由机制。

1.0.2 2020-04-23 23:57 UTC

This package is auto-updated.

Last update: 2024-09-24 09:21:58 UTC


README

Web应用程序的路由机制。

安装

composer require kiryi/routyi

用法

首先设置路由表。然后使用

$routyi = new \Kiryi\Routyi\Router());
$routyi->route();

所有端点类都必须实现 Kiryi\Routyi\EndpointInterface 接口,并且必须有 run(array $params) 方法。

构造函数定义

__construct(?string $namespace = null, ?string $routingTableFilepath = null, ?string $configFilepath = null)

参数

命名空间
可选的命名空间,路由表端点以该命名空间开始。如果没有提供命名空间,则必须在路由表中配置端点的完全限定命名空间。

路由表文件路径
可选的路由表INI文件路径。它相对于您项目的根目录。如果没有提供文件路径,则使用默认值(config/routing.ini)(更多信息见此处)。

配置文件路径
可选的配置INI文件路径。它相对于您项目的根目录。如果没有提供文件路径,则使用默认值(config/routyi.ini)。此路径仅当您使用子目录时相关(更多信息见此处)。

方法定义 route

route(): void

路由表

路由表是一个INI文件,由路由(键)和相应的端点(值)组成。默认文件路径是config/routing.ini。如果您想更改此设置,请参阅构造函数参数 string $rountingTableFilepath

基本结构

/ = Fully\Qualified\Namespace\DefaultController
/foo = Fully\Qualified\Namespace\FooController
/foo/bar = Fully\Qualified\Namespace\BarController

单个斜杠 '/' 是默认控制器。它用作主页,并在找不到实际路由时使用。

如果您想为端点配置命名空间,请参阅构造函数参数 string $namespace 和提供的示例

路由参数

URL将从可能的最长路由处理到最短路由。一旦路由表中的路由匹配,路由部分之后的所有内容都被视为参数,并放入一个数组中,该数组被传递给 run 方法。

使用子目录

如果您正在使用子目录进行Web应用程序,则必须指定包含以下内容的配置INI文件

[routyi]
subDir = {YOURSUBDIRECTORY}

默认文件路径是config/routyi.ini。如果您想更改此设置,请参阅构造函数参数 string $configFilepath

示例

configuration/routes.ini

/ = HomeController
/about = AboutController

src/Bootstrap.php

(new \Kiryi\Routyi\Router('MyProject\\Controller\\', 'configuration/routes.ini'))->route();

URL mydomain.com 将路由到 MyProject\Controller\HomeController
URL mydomain.com/about 将路由到 MyProject\Controller\AboutController
URL mydomain.com/wrong/route 将路由到 MyProject\Controller\HomeController。由于 /wrong/route 不是一个匹配的路由,因此该部分被解释为参数,并传递给 HomeControllerrun 方法。