<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Laravel 是單入口文件的mvc重型框架,里面集成了消息隊列,orm,ioc等功能模塊。laravel的生命周期簡述如下: 1、從`public\index.php`,進入框架; 2、注冊加載composer自動生成的`class loader`,初始化第三方依賴; 3、生成容器(bootstrap/app.php),注冊核心組件(Kernel::class); 4、處理請求,生成并返回響應; 5、結束請求,進行回調 從`public\index.php`開始。 注冊加載composer自動生成的`class loader`,初始化第三方依賴,laravel本身實現的也已經高度組件化了。 使用上一步生成的容器`Container`類,從`bootstrap/app.php`腳本獲取 Laravel 應用實例,注冊laravel核心組件。 如果是web請求不是命令行請求,那么**創建 Laravel HTTP Kernel 核心**,請求被發送到`HTTP`內核。 HTTP 內核繼承自 Illuminate\\Foundation\\Http\\Kernel 類,這個類中擁有三個核心成員變量 $app,$router,$bootstrappers。 ~~~ protected $app; protected $router; protected $bootstrappers \= \[ \\Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables::class, # 加載 .env 中的配置信息 \\Illuminate\\Foundation\\Bootstrap\\LoadConfiguration::class, # 加載 config 目錄中所有配置文件的配置信息 \\Illuminate\\Foundation\\Bootstrap\\HandleExceptions::class, # 異常處理 \\Illuminate\\Foundation\\Bootstrap\\RegisterFacades::class, # 注冊門面 \\Illuminate\\Foundation\\Bootstrap\\RegisterProviders::class, # 注冊Service Providers \\Illuminate\\Foundation\\Bootstrap\\BootProviders::class, # 注冊啟動器 \]; ~~~ $app 咱們已經說了足夠多,就是應用容器,我們所有的工作都在這個容器中進行。 $router 路由對象,它提供路由相關的服務,幫助我們把網絡請求分配給對應的路由進行邏輯處理,然后把處理的結果(網絡響應)返回給我們,我們在web.php中定義的路由就是由它來管理的。 $bootstrappers 數組,這個數組中的任務項在網絡請求被處理前運行,我們可以看到**環境檢查,配置加載,異常處理,Facedes 門面注冊,ServiceProvider 注冊**等等任務都需要在網絡請求被處理前被首先執行,而且這些任務是有前后順序的,排在前面的會首先執行,這也很容易理解,因為不管是 Facades 還是 Service Providers 都是定義在 config 目錄中的 app.php 文件中的,只有加載來配置之后才能注冊門面和Service Providers。 結束請求,進行回調,終止 Laravel 應用,Laravel 到此也完成了它的歷史使命。中間件中有一類的中間件,terminable middleware 的處理邏輯就是在這個階段執行的。 **擴展知識【中間件】** Middleware?,在 Kernel 以及它的基類?Illuminate\\Foundation\\Http\\Kernel 中定義了一系列的 middlewares ,借助這些中間件,就可以完成對用戶請求的過濾和安全檢查等等功能。 ~~~ public function __construct(Application $app, Router $router) { $this->app = $app; $this->router = $router; $route->middlewarePriority = $this->middlewarePriority; foreach ($this->middlewareGroups as $key => $middleware) { $router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } ~~~ 中間件的作用:所有請求在處理前需要經過的 HTTP[中間件](https://laravel.com/docs/5.4/middleware),這些中間件處理[HTTP 會話](https://laravel.com/docs/5.4/session)的讀寫、判斷應用是否處于維護模式、驗證[CSRF 令牌](https://laravel.com/docs/5.4/csrf)等等。 ![](https://img.kancloud.cn/1d/1e/1d1e54555ca319d5aaee750cec85661f_572x508.png) **laravel請求生命周期流程圖,如下** ![](https://img.kancloud.cn/92/26/922612cbdd637e1d8f8210b16558b445_1748x696.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看