kiryi / routyi
Web应用程序的路由机制。
Requires
- php: ^7.4
- kiryi/inyi: ^1.0
- kiryi/pathyi: ^1.0
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 不是一个匹配的路由,因此该部分被解释为参数,并传递给 HomeController
的 run
方法。