Skip to content
php
use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;

// 项目保留常量,未使用
define('LARAVEL_START', microtime(true));

// 用于判断是否为维护状态,当维护时,会返回503服务不可用错误
if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
    require $maintenance;
}

// 实现项目第三方库文件的自动加载
require __DIR__.'/../vendor/autoload.php';

/**
 *  引入框架app启动文件,实例化Illuminate\Foundation\Application对象
 * 2.1 实例化容器类
 *   2.1.1 设置基础目录路径
 *   2.1.2 注册基础绑定
 *   2.1.3 注册服务提供者
 *   2.1.4 注册核心别名类
 * 向容器中"装填"处理HTTP请求的核心类HttpKernel
 * 向容器中"装填"处理命令行的核心类ConsoleKernel
 * 向容器中"装填"处理异常的核心类
 */
$app = require_once __DIR__.'/../bootstrap/app.php';

// 从app中得到容器中装填好的处理HTTP请求的类赋值给变量kernel
$kernel = $app->make(Kernel::class);

// 运行HttpKernel类的handle方法,处理接收到的HTTP请求,得到需要返回的对象
$response = $kernel->handle(
    $request = Request::capture()
)->send();

$kernel->terminate($request, $response);