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 结构使用而设计。它提供了诸如灵活的路由定义、中间件集成和命名路由等高级功能。

徽章

Latest Stable Version

Total Downloads

Latest Unstable Version

License

PHP Version Require

Version

🔗 链接

portfolio linkedin twitter

功能

  • 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