PHP生命周期
- 模塊初始化階段 --- php_module_startup()
- 請求初始化階段 --- php_request_startup()
- 執(zhí)行腳本階段 --- php_execute_script()
- 請求關(guān)閉階段 --- php_request_shutdown()
- 模塊關(guān)閉階段 --- php_module_shutdown()
Laravel 的生命周期
- Laravel 采用了單一入口模式扎唾,應(yīng)用的所有請求入口都是 public/index.php 文件罐旗。
- 注冊類文件自動加載器 : Laravel通過 composer 進行依賴管理荸哟,無需開發(fā)者手動導(dǎo)入各種類文件,而由自動加載器自行導(dǎo)入
- 創(chuàng)建服務(wù)容器:從 bootstrap/app.php 文件中取得 Laravel 應(yīng)用實例 $app (服務(wù)容器)
- 創(chuàng)建 HTTP / Console 內(nèi)核:傳入的請求會被發(fā)送給 HTTP 內(nèi)核或者 console 內(nèi)核進行處理
- 載入服務(wù)提供者至容器:在內(nèi)核引導(dǎo)啟動的過程中最重要的動作之一就是載入服務(wù)提供者到你的應(yīng)用埋嵌,服務(wù)提供者負責(zé)引導(dǎo)啟動框架的全部各種組件列另,例如數(shù)據(jù)庫瘦黑、隊列、驗證器以及路由組件端幼。
- 分發(fā)請求:一旦應(yīng)用完成引導(dǎo)和所有服務(wù)提供者都注冊完成,Request 將會移交給路由進行分發(fā)弧满。路由將分發(fā)請求給一個路由或控制器婆跑,同時運行路由指定的中間件
laravel核心-生命周期.png
img
Yii2生命周期
1.用戶向入口腳本 web/index.php 發(fā)起請求。
2.入口腳本加載應(yīng)用配置并創(chuàng)建一個應(yīng)用 實例去處理請求谱秽。
3.應(yīng)用通過請求組件解析請求的 路由洽蛀。
4.應(yīng)用創(chuàng)建一個控制器實例去處理請求。
5.控制器創(chuàng)建一個動作實例并針對操作執(zhí)行過濾器疟赊。
6.如果任何一個過濾器返回失敗郊供,則動作取消。
7.如果所有過濾器都通過近哟,動作將被執(zhí)行驮审。
8.動作會加載一個數(shù)據(jù)模型,或許是來自數(shù)據(jù)庫吉执。
9.動作會渲染一個視圖疯淫,把數(shù)據(jù)模型提供給它。
10.渲染結(jié)果返回給響應(yīng)組件戳玫。
11.響應(yīng)組件發(fā)送渲染結(jié)果給用戶瀏覽器熙掺。
img
ThinkPHP生命周期
img