其實 Laravel 作為 php 的框架,其實本質還是 php。
當我們在第一天準備環境的時候,我們建立了一個 blog 的資料夾。
裡面資料夾分別如下:
你看到很多個資料夾不用太緊張,就如同我上面說明的一樣,你主要會工作的資料夾就那幾個,其他能不動就不動,真的有需要才會進去裡面。
而在第一段的時候我們也說到 Laravel 的本質就是 php,所以其實我們可以試著打開進入點 public/index.php 來看看,你會發現大部分都是註解,真正重要的 code 只有幾行
以下我就直接略過註解直接貼 code 給你們看
<?php
define('LARAVEL_START', microtime(true));
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
接下來請讓我看 code 說故事一樣
我果真很會看 code 說故事呢,自己都自己看不是很懂
如果不懂也沒關係,但你跟著我這樣看程式碼就大概知道一下 laravel 的啟動到底是怎麼一回事。
其實官方文件也有關於他週期的相關說明,礙於篇幅關係我也沒辦法寫得太多,只能這樣簡單帶過...
總之 Laravel 在被啟動的時候其實做了很多事情,分別就是走上面的流程,而在 bootstrap 和 kernal 裡面也定義了許多東西與方法,我這裡先點出一個 middleware,這在我們之後會更加詳細說明
如果你希望更深入了解的話可以參考以下文章:
英文文件:
https://laravel.com/docs/6.x/lifecycle
你也可以看中文文件:
https://laravel.tw/docs/5.2/lifecycle
https://learnku.com/articles/10642/laravel-request-life-cycle
或者去年的鐵人賽也有一組主題在講 laravel 的原始碼,我自己是有訂閱的(不過我還沒看完)
Laravel 原始碼分析: https://ithelp.ithome.com.tw/users/20102562/ironman/1684
另外最近看一篇文章對於Laravel的核心也講得很清楚:https://www.itread01.com/content/1549735233.html