應(yīng)用程序結(jié)構(gòu)

2018-12-17 10:47 更新

介紹

默認的 Laravel 應(yīng)用程序結(jié)構(gòu)是為了提供一個良好的開始,無論是構(gòu)建大型還是小型應(yīng)用。當然,你可以依照喜好自由地組織應(yīng)用程序。Laravel 幾乎沒有強加限制任何類的放置位置 - 只要 Composer 可以自動加載這些類即可。

           

根目錄

一個新安裝的 Laravel 根目錄包含許多個目錄:

app 目錄,如你所料,包含應(yīng)用程序的核心代碼。我們之后將會很快深入探討這個目錄的細節(jié)。

bootstrap 目錄包含幾個框架啟動跟自動加載配置的文件。

config 目錄,顧名思義,包含所有應(yīng)用程序的配置文件。

database 目錄包含你的數(shù)據(jù)庫遷移與數(shù)據(jù)填充文件。

public 目錄包含前面的控制器和你的資源文件 (圖片、JavaScript、CSS,等等)。

resources 目錄包含你的視圖、原始的資源文件 (LESS、SASS、CoffeeScript) 和「語言」文件。

storage 目錄包含編譯后的 Blade 模板、基于文件的 session、文件緩存和其他框架產(chǎn)生的文件。

tests 目錄包含你的自動化測試。

vendor 目錄包含你的 Composer 依賴模塊。

           

App 目錄

應(yīng)用程序的「內(nèi)容」存在于 app 目錄中。默認情況下,這個目錄在 App 命名空間下并通過 Composer 使用 PSR-4 自動加載標準 自動加載。 你可以使用 app:name Artisan 命令變更這個命名空間.

app 目錄附帶許多個額外的目錄,例如:Console、HttpProviders。考慮 ConsoleHttp 目錄用作提供 API 進入應(yīng)用程序的「核心」。HTTP 協(xié)定和 CLI 都是跟應(yīng)用程序交互的機制,但實際上并不包含應(yīng)用程序邏輯。換句話說,它們是兩種簡單地發(fā)布命令給應(yīng)用程序的方法。Console                目錄包含你全部的 Artisan 命令,而 Http 目錄包含你的控制器、過濾器和請求。

Commands 目錄當然是用來放置應(yīng)用程序的命令。命令代表可以被應(yīng)用程序放到隊列的任務(wù),以及可以在當前請求生命周期內(nèi)同步運行的任務(wù)。

Events 目錄,如你所料,是用來放置事件類。當然,使用類來代表事件不是必須的;然而,如果你選擇使用它們,這個目錄將會是通過 Artisan 命令行創(chuàng)建它們時的默認位置。

Handlers 目錄包含命令和事件的處理類。處理進程接收命令或事件,并針對該命令或事件執(zhí)行邏輯。

Services 目錄包含各種「輔助」服務(wù),囊括應(yīng)用程序需要的功能。例如,Laravel 引入的 Registrar 服務(wù)負責驗證 并創(chuàng)建應(yīng)用程序的新用戶。其他的例子可能是服務(wù)跟外部 API、評價系統(tǒng)或甚至是跟從你的應(yīng)用程序匯集數(shù)據(jù)的服務(wù)交互。

Exceptions 目錄包含應(yīng)用程序的異常處理進程,也是個處置應(yīng)用程序拋出的任何異常的好地方。

注意:app 目錄中的許多類可以用 Artisan 命令產(chǎn)生。要查看可以使用的命令,在終端機執(zhí)行 php artisan list make 命令。

           

為應(yīng)用程序配置命名空間

如前面所提到的,默認的應(yīng)用程序命名空間為 App;然而,你可以變更這個命名空間成跟應(yīng)用程序的名稱一樣,這可以簡單地通過 app:name Artisan 命令完成。例如:如果你的應(yīng)用程序叫做「SocialNet」,你將會執(zhí)行下面的命令:

php artisan app:name SocialNet


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號