You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非Laravel的其他PHP项目中使用Laravel Route路由系统?

非Laravel项目集成Illuminate路由实现方案

1. 安装依赖

首先通过Composer安装路由相关的依赖包:

composer require illuminate/routing illuminate/http illuminate/container

如果需要使用路由缓存、资源路由等进阶功能,额外安装filesystem组件:

composer require illuminate/filesystem

2. 初始化核心实例

在项目的入口文件(通常是public/index.php)中初始化容器、请求和路由实例,如果你之前集成Eloquent时已经创建过Illuminate容器,可以直接复用:

<?php
require __DIR__ . '/../vendor/autoload.php';

use Illuminate\Container\Container;
use Illuminate\Http\Request;
use Illuminate\Routing\Router;

// 初始化服务容器,复用现有实例可跳过这步
$container = Container::getInstance();
// 绑定当前请求到容器
$container->instance('request', Request::capture());

// 初始化路由对象
$router = new Router($container);

3. 定义路由

路由定义方式和Laravel原生完全一致,支持所有常用特性:

// 基础闭包路由
$router->get('/', function () {
    return 'Hello from Illuminate Routing';
});

// 带参数路由
$router->get('/user/{id}', function (int $id) {
    return "用户ID:{$id}";
});

// 控制器路由
$router->get('/post/{id}', [\App\Controllers\PostController::class, 'show']);

// 路由组、中间件、前缀等特性用法不变
$router->middleware('auth')->prefix('admin')->group(function ($router) {
    $router->get('/dashboard', function () {
        return '管理后台';
    });
});

4. 分发请求返回响应

路由定义完成后,分发请求并输出响应:

// 分发请求得到响应
$response = $router->dispatch($container->make('request'));
// 发送响应到客户端
$response->send();

注意事项

  • 路由所有用法和Laravel官方文档描述完全一致,不需要额外适配
  • 中间件的注册、路由命名、资源路由等进阶功能都可以正常使用,不需要额外配置
  • 如果需要使用表单验证、Session等和路由联动的特性,安装对应illuminate系列组件按官方方式配置即可

内容的提问来源于stack exchange,提问作者mostafa khalili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:30:05