foca / nexus-router
NexusRouter是一个PHP路由器,旨在简化项目中对路由的创建和管理。使用NexusRouter,您可以轻松定义Web应用程序中想要使用的路由和控制器。
Requires
- php: ^8.0
README
NexusRouter
NexusRouter是一个PHP路由器,旨在简化项目中路由的创建和管理。使用NexusRouter,您可以轻松定义您希望在Web应用程序中使用的路由和控制器。
摘要
NexusRouter是一个功能强大的工具,为生产环境和测试环境中的路由实现提供了许多优势。NexusRouter的一些关键优势包括:
-
易于实现:NexusRouter可以轻松集成到现有项目中。只需将
nexus-router文件夹添加到项目中,并在项目根目录的index.php文件中导入NexusLoader.php文件即可。 -
灵活的路由管理:您可以使用控制器或回调来使用路由,这为您提供了选择如何处理传入请求的自由。您可以定义将重定向到特定控制器的路由,或使用自定义回调来执行特定路由的代码。
-
精确的路由:NexusRouter允许您定义精确的路由,验证每个路由段和将作为值处理的段。这为您提供了更大的控制权,以管理请求以及如何从控制器或导入的文件中访问路由参数,从而避免意外的行为。
-
路由元数据:NexusRouter允许您为每个路由传递一个名为
$metadata的变量,该变量可以是任何类型(mixed)。此元数据变量提供了有关路由的附加信息,并可以从关联控制器或文件中访问。
安装
基本安装
要开始在项目中使用NexusRouter,请按照以下步骤操作:
-
通过克隆存储库下载项目,这将生成
nexus-router文件夹,将其放置在项目中的任何位置。 -
确保在项目根目录的
index.php文件中导入了NexusLoader.php文件。这将在访问应用程序时正确加载NexusRouter。 -
在项目根目录中包含
.htaccess文件。此文件对于NexusRouter与Apache服务器正确工作至关重要。 -
在
nexus-router文件夹中,您将找到一个名为routes.php的文件。在此文件中,您可以使用NexusRouter定义所有要控制的路由。
使用Composer安装
如果您喜欢使用Composer来管理项目依赖项,可以按照以下方式安装NexusRouter:
-
在终端中,导航到项目的根目录。
-
如果您项目中还没有
composer.json文件,请执行以下命令创建它:composer init
此命令将引导您创建包含项目基本信息
composer.json文件。注意:如果您已经有了一个
composer.json文件,您可以跳过此步骤。 -
一旦您有了
composer.json文件,请执行以下命令将NexusRouter添加为项目依赖项:composer require foca/nexus-router
这将下载并安装NexusRouter及其依赖项到项目的
vendor文件夹中,并自动更新composer.json文件以包含新的依赖项。 -
在您的
index.php文件中包含由 Composer 生成的autoload.php文件,方法如下require 'vendor/autoload.php';
这将自动加载
NexusRouter,因此不再需要导入NexusLoader.php文件。 -
请确保您的项目根目录中存在
.htaccess文件。 -
在
vendor/foca/nexus-router目录下,您将找到一个名为routes.php的文件。在此文件中,您可以定义您想要使用 NexusRouter 控制的所有路由。
注意:示例文件
index.php和.htaccess可在安装包的目录下找到,在本例中为vendor/foca/nexus-router。
灵活的路由配置
在您的项目中使用 NexusRouter 之前,您可以在 nexus-router 目录下的 config.php 文件中配置是否从 routes.php 文件中加载路由。此配置通过修改 config.php 文件实现。
要控制从 routes.php 文件加载路由,请按照以下步骤操作
-
打开位于
nexus-router目录下的config.php文件。 -
查找名为
ENABLE_ROUTES_FILE的常量,并根据您的需求进行配置public const ENABLE_ROUTES_FILE = true; // Cargar rutas desde routes.php // public const ENABLE_ROUTES_FILE = false; // No cargar rutas desde routes.php
- 如果将
ENABLE_ROUTES_FILE设置为true,NexusRouter 将
- 如果将
加载在 routes.php 文件中定义的路由。
- 如果将
ENABLE_ROUTES_FILE设置为false,NexusRouter 不会从routes.php文件加载路由。
请记住,如果将 ENABLE_ROUTES_FILE 设置为 false,您还可以在实例化 NexusLoader 之前直接在 index.php 文件中定义路由。这为您提供了在 index.php 文件中添加额外路由或自定义条件的灵活性。
路由示例
以下是一些如何在 routes.php 文件中使用 NexusRouter 定义路由的示例
// Ruta simple Router::get('/users' , 'Controllers/User'); // Ruta con parámetro Router::get('/users/$list', 'Controllers/User'); // Ruta con parámetro y valor inyectado Router::get('/users/$list', 'Controllers/User', "getUsers");
替代语法 Fluent Design
Router::get('/users' , 'Controllers/User') ->get('/users/$list', 'Controllers/User') ->get('/users/$list', 'Controllers/User', "getUsers");
您可以添加任意数量的路由,指定相应的 HTTP 方法(例如,get、post、put、delete)和路由应该重定向到的控制器。
回调示例
除了使用控制器外,NexusRouter 还允许您使用回调来处理路由。以下是如何在 NexusRouter 中使用回调的一些示例
// Callback simple: https:///welcome Router::get('/welcome', function(){ echo 'I love Nexus Router!'; }); // Ejemplo con un parámetro: https:///welcome/alexander Router::get('/welcome/$name', function($param1){ echo $param1 . ' loves Nexus Router!'; }); // Ejemplo con múltiples parámetros: https:///welcome/alexander/calderon Router::get('/welcome/$name/$lastname', function($param1,$param2){ echo $param1 . ' ' . $param2 . ' loves Nexus Router!'; });
您可以直接在路由中定义回调,这允许您执行自定义代码来处理路由的响应。
配置
如果您想自定义 NexusRouter 的配置,可以通过修改位于 nexus-router 目录下的 config.php 文件来实现。在此文件中,您可以进行以下调整
-
OUTPUT_MODE:定义响应所需输出的格式。您可以选择 "WEB"、"JSON" 或 "XML"。 -
SKIP_URL_PATH:如果您正在进行测试并希望从 URL 中排除特定部分,可以配置此选项来删除它。例如,如果您想从localhost/pruebas/users/1的 URL 中排除/pruebas,则将/pruebas设置为'SKIP_URL_PATH',这在将应用程序部署到生产环境时非常有用,因为它可以确保您的路由中不包含额外的子目录,如示例中的'/pruebas'。
归属
请确保在使用 NexusRouter 的项目中维护对原作者 Alexander Calderón 的归属。在您的文档、信用页面或任何适当的位置包括对原作者的引用和适当的链接或信用。
许可证
NexusRouter 在 MIT 许可证下分发。请参阅 LICENSE 文件以获取有关许可证条款的更多信息。
享受使用 NexusRouter 简化您项目中的路由!如果您有任何问题或问题,请不要犹豫,联系原作者或寻求文档和可用资源的帮助。