seymennc / php-route
此软件包的最新版本(dev-main)没有可用的许可信息。
dev-main
2024-09-22 14:10 UTC
This package is auto-updated.
Last update: 2024-09-22 18:25:33 UTC
README
PHP 路由库允许您快速灵活地定义基于 HTTP 的路由。它专为 MVC 结构使用而设计。它提供了诸如灵活的路由定义、中间件集成和命名路由等高级功能。
徽章
🔗 链接
功能
- HTTP 方法支持: 支持诸如 GET、POST、PUT、DELETE 等HTTP请求。
- 路由分组: 将类似的路由分组以创建更组织化和更清洁的结构。
- 前缀支持: 为所有路由添加前缀以创建动态和有组织的路由结构。
- 中间件: 为每个路由定义中间件以控制请求在处理前后。
- 命名路由: 为您的路由命名以简化动态 URL 生成。
- 动态路由模式: 使用路由参数构建灵活的结构。
安装
要使用该项目,请按照以下步骤操作
Git Clone
git clone https://github.com/seymennc/php-route.git
cd php-route
php -S 127.0.0.1:8080
Composer
如果您使用 php-router 创建新项目
composer create-project seymennc/php-route php-route
cd php-route
php -S 127.0.0.1:8080
如果您只想在项目中使用它
composer require seymennc/php-route
使用方法
在您的项目中包含自动加载器
require 'vendor/autoload.php';
然后,在您的项目中包含 web.php 文件
require __DIR__ . '/web/web.php';
最后,添加调度路由
Route::dispatch();
基本使用
您可以在 web.php 文件中定义您的路由。
此方法定义了一个响应于对 /home URL 的 GET 请求的路由。当访问路由时,该函数返回字符串 '主页'。
基本 GET 路由
use Luminance\Service\phproute\Route\Route; Route::method('get')->route('/home', function() { return 'Home Page'; })->name('home');
基本 POST 路由
除了主页 URL 之外,让我们添加一个新的路由,该路由响应 POST 请求。当访问路由时,该函数返回字符串 '帖子页面'。
Route::method('post')->route('/home', function() { return 'Home Post Page'; })->name('home');
使用控制器
您还可以定义响应请求的控制器路由。在此示例中,路由响应于对 /about URL 的 GET 请求。当访问路由时,将调用 AboutController 类的 index 方法。
Route::method('get')->route('/home', 'AboutController@index')->name('about');
使用中间件
您可以为每个路由定义中间件。在此示例中,路由响应于对 /contact URL 的 GET 请求。当访问路由时,该函数返回字符串 '联系页面'。中间件函数在处理路由之前被调用。
Route::method('get')->route('/contact', function() { return 'Contact Page'; })->middleware('auth')->name('contact');
路由分组和前缀
您可以将类似的路由分组以创建更组织化和更清洁的结构。在此示例中,路由在 /admin 前缀下分组。这些路由响应于对 /admin/dashboard 和 /admin/profile URL 的 GET 请求。
Route::prefix('/admin')->group(function() { Route::method('get')->route('/dashboard', 'AdminController@index'); Route::method('post')->route('/profile', 'AdminController@profile'); });
更多示例请参见 Asgard 文档。
贡献
我们欢迎贡献!如果您发现错误或有改进建议,请打开问题或直接向项目贡献。
我们的♥️贡献者
许可
根据 GNU 通用公共许可证授权,版权 © 2024 年至今 BLC Studio