<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國際加速解決方案。 廣告
                # 應用程序目錄結構 - [簡介](#introduction) - [根目錄](#the-root-directory) - [`app` 目錄](#the-root-app-directory) - [`bootstrap` 目錄](#the-bootstrap-directory) - [`config` 目錄](#the-config-directory) - [`database` 目錄](#the-database-directory) - [`public` 目錄](#the-public-directory) - [`resources` 目錄](#the-resources-directory) - [`routes` 目錄](#the-routes-directory) - [`storage` 目錄](#the-storage-directory) - [`tests` 目錄](#the-tests-directory) - [`vendor` 目錄](#the-vendor-directory) - [App 目錄](#the-app-directory) - [`Console` 目錄](#the-console-directory) - [`Events` 目錄](#the-events-directory) - [`Exceptions` 目錄](#the-exceptions-directory) - [`Http` 目錄](#the-http-directory) - [`Jobs` 目錄](#the-jobs-directory) - [`Listeners` 目錄](#the-listeners-directory) - [`Mail` 目錄](#the-mail-directory) - [`Notifications` 目錄](#the-notifications-directory) - [`Policies` 目錄](#the-policies-directory) - [`Providers` 目錄](#the-providers-directory) <a name="introduction"></a> ## 簡介 默認的 Laravel 應用程序結構意在給不同大小的應用程序提供一個好的起始點。當然,你也可以依照個人喜好來隨意組織應用程序。Laravel 幾乎沒有對任何類的放置位置進行強加限制 - 只要 Composer 可以自動加載這些類即可。 #### 為何沒有 Models 目錄? 許多初學者都會困惑 Laravel 為什么沒有 `models` 目錄,這是有意而為之的。因為 `models` 這個詞對不同人而言有不同的含義,容易造成歧義,有些開發者認為應用的模型指的是業務邏輯,另外一些人則認為模型指的是與數據庫的交互。 正是因為如此,我們默認將 Eloquent 的模型放置到 `app` 目錄下,從而允許開發者自行選擇放置的位置。 <a name="the-root-directory"></a> ## 根目錄 <a name="the-root-app-directory"></a> #### App 目錄 `app` 目錄,如你所料,這里面包含應用程序的核心代碼。我們之后將很快對這個目錄的細節進行深入探討。 <a name="the-bootstrap-directory"></a> #### Bootstrap 目錄 `bootstrap` 目錄包含了幾個框架啟動跟自動加載設置的文件。以及在 `cache` 文件夾中包含著一些框架在啟動性能優化時所生成的文件。 <a name="the-config-directory"></a> #### Config 目錄 `config` 目錄,顧名思義,包含所有應用程序的配置文件。 <a name="the-database-directory"></a> #### Database 目錄 `database` 目錄包含數據庫遷移與數據填充文件。如果你愿意的話,你也可以在此文件夾存放 SQLite 數據庫。 <a name="the-public-directory"></a> #### Public 目錄 `public` 目錄存放著 `index.php` 文件,此文件被視為 Laravel 的 HTTP 入口。此目錄還包含了前端控制器和資源文件(圖片、JavaScript、CSS,等等)。 <a name="the-resources-directory"></a> #### Resources 目錄 `resources` 目錄包含了視圖、原始的資源文件 (LESS、SASS、CoffeeScript) ,以及語言包。 <a name="the-routes-directory"></a> #### Routes 目錄 `routes` 目錄包含了應用的所有路由定義。Laravel 默認提供了三個路由文件:`web.php`、`api.php` 和 `console.php`。 `web.php` 文件里定義的路由都會在 `RouteServiceProvider` 中被指定應用到 `web` 中間件組,具備 Session、CSRF 防護以及 Cookie 加密功能,如果應用無需提供無狀態的、RESTful 風格的API,所有路由都會定義在 `web.php` 文件。 `api.php` 文件里定義的路由都會在 `RouteServiceProvider` 中被指定應用到 `api` 中間件組,具備頻率限制功能,這些路由是無狀態的,所以請求通過這些路由進入應用需要通過 API 令牌進行認證并且不能訪問 Session 狀態。 `console.php` 文件用于定義所有基于閉包的控制臺命令,每個閉包都被綁定到一個控制臺命令并且允許與命令行 IO 方法進行交互,盡管這個文件并不定義 HTTP 路由,但是它定義了基于命令行的應用入口(路由)。 <a name="the-storage-directory"></a> #### Storage 目錄 `storage` 目錄包含編譯后的 Blade 模板、基于文件的 session、文件緩存和其它框架生成的文件。此文件夾分格成 `app`、`framework`,及 `logs` 目錄。`app` 目錄可用于存儲應用程序使用的任何文件。`framework` 目錄被用于保存框架生成的文件及緩存。最后,`logs` 目錄包含了應用程序的日志文件。 `storage/app/public` 可以用來生成用戶上傳文件,作為公開磁盤使用。默認的 `public` 磁盤使用 `local` 驅動,并且存儲文件至 `storage/app/public` 文件夾中。為了能公開訪問,你需要創建 `public/storage` 文件夾,然后作為符號鏈接到 `storage/app/public` 文件夾,你可以使用 `php artisan storage:link` 來創建符號鏈接。 <a name="the-tests-directory"></a> #### Tests 目錄 `tests` 目錄包含自動化測試。這有一個現成的 [PHPUnit](https://phpunit.de/) 例子。每一個測試類都需要添加 `Test` 前綴,你可以使用 `phpunit` 或者 `php vendor/bin/phpunit` 命令來運行測試。 <a name="the-vendor-directory"></a> #### Vendor 目錄 `vendor` 目錄包含你的 [Composer](https://getcomposer.org) 依賴模塊。 <a name="the-app-directory"></a> ## App 目錄 應用程序的「內容」存在于 `app` 目錄中。默認情況下,這個目錄在 `App` 命名空間下借助 Composer 使用 [PSR-4 自動加載標準](https://phphub.org/topics/2081)自動加載。**你可以使用 `app:name` Artisan 命令修改這個命名空間**。 `app` 目錄附帶許多個額外的目錄,例如:`Console`、`Http` 和 `Providers`。可以將 `Console` 和 `Http` 目錄試想為提供 API 進入應用程序的「核心」。HTTP 協定和 CLI 都是跟應用程序進行交互的機制,但實際上并不包含應用程序邏輯。換句話說,它們是兩種簡單地發布命令給應用程序的方法。`Console` 目錄包含你全部的 Artisan 命令,而 `Http` 目錄包含你的控制器、中間件和請求。 其他目錄將會在你通過 Artisan 命令 `make` 生成相應類的時候生成到 `app` 目錄下。例如,`app/Jobs` 目錄在你執行 `make:job` 命令生成任務類時,才會出現在 `app` 目錄下。 > {tip} `app` 目錄中的很多類都可以通過 Artisan 命令生成,要查看所有有效的命令,可以在終端中運行 `php artisan list make` 命令。 <a name="the-console-directory"></a> #### Console 目錄 `Console` 目錄包含應用所有自定義的 Artisan 命令,這些命令類可以使用 `make:command` 命令生成。該目錄下還有 `console` 核心類,在這里可以注冊自定義的 Artisan 命令以及定義 [調度任務](/docs/{{version}}/scheduling)。 <a name="the-events-directory"></a> #### Events 目錄 `Events` 目錄默認不存在,會在你使用 `event:generate` 或者 `event:make` 命令以后才會生成。如你所料,此目錄是用來放置 [事件類](/docs/{{version}}/events) 的。事件可以被用于當指定動作發生時,通知你應用程序的其它部分,提供了很棒的靈活性及解耦。 <a name="the-exceptions-directory"></a> #### Exceptions 目錄 `Exceptions` 目錄包含應用程序的異常處理進程,同時也是個處置應用程序拋出異常的好位置。如果你想自定義異常的記錄和渲染,你應該修改此目錄下的 `Handler` 類。 <a name="the-http-directory"></a> #### Http 目錄 `Http` 目錄包含了控制器、中間件以及表單請求等,幾乎所有進入應用的請求處理都在這里進行。 <a name="the-jobs-directory"></a> #### Jobs 目錄 該目錄默認不存在,可以通過執行 `make:job` 命令生成,`Jobs` 目錄用于存放 [隊列任務](/docs/{{version}}/queues),應用中的任務可以被隊列化,也可以在當前請求生命周期內同步執行。同步執行的任務有時也被看作命令,因為它們實現了 [命令總線設計模式](https://en.wikipedia.org/wiki/Command_pattern)。 <a name="the-listeners-directory"></a> #### Listeners 目錄 這個目錄默認不存在,可以通過執行 `event:generate` 和 `make:listener` 命令創建。`Listeners` 目錄包含處理 [事件](/docs/{{version}}/events) 的類(事件監聽器),事件監聽器接收一個事件并提供對該事件發生后的響應邏輯,例如,`UserRegistered` 事件可以被 `SendWelcomeEmail` 監聽器處理。 <a name="the-mail-directory"></a> #### Mail 目錄 這個目錄默認不存在,但是可以通過執行 `make:mail` 命令生成,`Mail` 目錄包含郵件發送類,郵件對象允許你在一個地方封裝構建郵件所需的所有業務邏輯,然后使用 `Mail::send` 方法發送郵件。 <a name="the-notifications-directory"></a> #### Notifications 目錄 這個目錄默認不存在,你可以通過執行 `make:notification` 命令創建, `Notifications` 目錄包含應用發送的所有通知,比如事件發生通知。Laravel 的通知功能將通知發送和通知驅動解耦,你可以通過郵件,也可以通過 Slack、短信或者數據庫發送通知。 <a name="the-policies-directory"></a> #### Policies 目錄 這個目錄默認不存在,你可以通過執行 `make:policy` 命令來創建, `Policies` 目錄包含了所有的授權策略類,策略用于判斷某個用戶是否有權限去訪問指定資源。更多詳情,請查看 [授權文檔](/docs/{{version}}/authorization)。 <a name="the-providers-directory"></a> #### Providers 目錄 Providers 目錄包含應用的 [服務提供者](/docs/{{version}}/providers) 。服務提供者在啟動應用過程中綁定服務到容器、注冊事件,以及執行其他任務,為即將到來的請求處理做準備。 在新安裝的 Laravel 應用中,該目錄已經包含了一些服務提供者,你可以按需添加自己的服務提供者到該目錄。
                  <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>

                              哎呀哎呀视频在线观看