dlunamontilla / dlroute
DLUnire 或任何其他项目使用的路由系统。
Requires
- imagine/imagine: ^1.3
- dev-master
- v1.3.36
- v1.3.35
- v1.3.34
- v1.3.33
- v1.3.32
- v1.3.31
- v1.3.30
- v1.3.29
- v1.3.28
- v1.3.27
- v1.3.26
- v1.3.25
- v1.3.24
- v1.3.23
- v1.3.22
- v1.3.21
- v1.3.20
- v1.3.19
- v1.3.18
- v1.3.17
- v1.3.16
- v1.3.15
- v1.3.14
- v1.3.12
- v1.3.11
- v1.3.9
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- v0.0.0
This package is auto-updated.
Last update: 2024-08-31 19:00:30 UTC
README
DLRoute
是一个用于简化在 Web 应用程序中管理路由和 URL 地址的系统。
目前,它允许通过数据类型或正则表达式进行筛选,这一点将在下面进行介绍。
此外,它不仅支持表单提交,还支持将 JSON 格式的内容直接发送到请求体(body
)。
特性
- 简单和复杂路由的定义。
- 支持不同的 HTTP 方法,如
GET
、POST
、PUT
、PATCH
和DELETE
等。 - 路由中的变量参数。
- 允许指定期望的参数数据类型,以及使用正则表达式。
- 使用控制器和
callbacks
处理路由。 - 灵活地集成到 Web 项目中。
安装
要开始使用 DLRoute
,请按照以下步骤操作
-
使用
Composer
安装DLRoute
composer require dlunamontilla/dlroute
-
配置应用程序中的路由系统。
请记住,所有请求都必须发送到一个基本文件(
index.php
),并且该文件应位于一个子目录中,例如public/
或html_public
或一个自定义命名的目录。 -
使用适合请求的方法定义路由。
语法
GET 方法
DLRoute::get(string $uri, callable|array|string $controller): DLParamValueType;
POST 方法
DLRoute::post(string $uri, callable|array|string $controller): DLParamValueType;
PUT 方法
DLRoute::put(string $uri, callable|array|string $controller): DLParamValueType;
PATCH 方法
DLRoute::patch(string $uri, callable|array|string $controller): DLParamValueType;
DELETE 方法
DLRoute::delete(string $uri, callable|array|string $controller): DLParamValueType;
请注意,为了使路由生效,即执行控制器,您必须在所有路由的末尾添加以下行
DLRoute::execute();它可以用于原生 PHP 项目,但它被设计用于 mini-framework DLUnire(目前处于开发中)。
路由定义示例
使用数组、字符串和 callbacks
定义路由的示例。
使用数组作为第二个参数的 array 定义 HTTP GET 请求的路由。
use DLRoute\Requests\DLRoute as Route; use DLRoute\Test\TestController; Route::get('/ruta', [TestController::class, 'method']);
根据前面的示例,执行的是 URI /ruta
上 TestController
类的 method
方法。
我们可以使用参数化路由重复相同的示例;例如
use DLRoute\Requests\DLRoute as Route; use DLRoute\Test\TestController; Route::get('/ruta/{parametro}', [TestController::class, 'method']);
前面的示例是参数化路由的示例,它执行了同一控制器的相同方法。
请记住,您必须按以下方式定义控制器
<?php namespace TuNamespaces\CarpetaControladores; use DLRoute\Config\Controller; final class TestController extends Controller { public function tu_metodo(object $params): object { return $params; } }
例如,public function tu_metodo(object $params): object
方法必须返回我们希望显示的输出类型。
如果希望返回 HTML 代码,只需按如下方式定义控制器
<?php namespace TuNamespaces\CarpetaControladores; use DLRoute\Config\Controller; final class TestController extends Controller { public function tu_metodo(object $params): string { return "Tu código HTML" } }
如果您使用的是 DLUnire 框架,可以使用具有两个参数的 view()
函数。第一个参数是视图的路径,第二个参数是在模板 tu-plantilla.template.html
中可以访问的变量。
您可以使用类型定义一个路由,例如
use DLRoute\Requests\DLRoute as Route; use DLRoute\Test\TestController; Route::get('/ruta/{parametro}', [TestController::class, 'method']) ->filter_by_type([ "parametro" => "numeric" ]);
或者,如果希望接受电子邮件
use DLRoute\Requests\DLRoute as Route; use DLRoute\Test\TestController; Route::get('/ruta/{email}', [TestController::class, 'method']) ->filter_by_type([ "email" => "email" ]);
请注意,filter_by_type
方法接受一个关联数组作为参数,其中键是参数,值是我们期望的类型。
例如
->filter_by_type([ "parametro" => "tipo" ]);
或者,通过使用正则表达式
->filter_by_type([ "parametro" => "/[a-f0-9]+/" ]);
用于捕获从 0
到 f
的字符。
支持的类型
目前支持的类型,您可以不使用正则表达式直接使用它们。
integer, float, numeric, boolean, string, email uuid
通过 callbacks
定义路由
以前,我们曾看到可以这样定义路由
Route::get('/ruta/{parametro}', [TestController::class, 'method']);
也可以通过 回调函数
来定义,例如
Route::get('/ruta/{parametro}', function (object $params) { return $params; });
记住,这里 $params
仅作为示例被返回,但你可以在这里返回任何内容。用户最终看到的是返回的内容。
如果你返回一个数组或对象(例如 $params
),返回的输出将会是 JSON 格式。
重要
使用
HTTP GET
方法制作的示例适用于所有其他发送方法。它完全相同。唯一不同的是DLRoute
类中方法的名称,用来指示发送方法。