鍍金池/ 教程/ PHP/ 應(yīng)用程序結(jié)構(gòu)
Laravel Cashier
Eloquent ORM
HTTP 響應(yīng)
發(fā)行說明
擴(kuò)展包開發(fā)
HTTP 控制器
事件
擴(kuò)展框架
Contracts
開發(fā)
配置
表單驗(yàn)證
錯(cuò)誤與日志
Hashing
貢獻(xiàn)指南
郵件
Session
遷移與數(shù)據(jù)填充
查詢構(gòu)造器
Redis
升級(jí)向?qū)?/span>
概覽
緩存
服務(wù)提供者
Envoy 任務(wù)執(zhí)行器
隊(duì)列
單元測試
服務(wù)容器
文件系統(tǒng) / 云存儲(chǔ)
認(rèn)證
請(qǐng)求的生命周期
加密
模板
視圖 (View)
Laravel Homestead
Laravel 安裝指南
介紹
Command Bus
分頁
輔助方法
應(yīng)用程序結(jié)構(gòu)
HTTP 路由
HTTP 請(qǐng)求
基本用法
本地化
HTTP 中間件
結(jié)構(gòu)生成器
Facades
Laravel Elixir

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

介紹

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

根目錄

一個(gè)新安裝的 Laravel 根目錄包含許多個(gè)目錄:

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

bootstrap 目錄包含幾個(gè)框架啟動(dòng)跟自動(dòng)加載配置的文件。

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

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

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

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

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

tests 目錄包含你的自動(dòng)化測試。

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

App 目錄

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

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

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

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

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

Services 目錄包含各種「輔助」服務(wù),囊括應(yīng)用程序需要的功能。例如,Laravel 引入的

Registrar 服務(wù)負(fù)責(zé)驗(yàn)證 并創(chuàng)建應(yīng)用程序的新用戶。其他的例子可能是服務(wù)跟外部 API、評(píng)價(jià)系統(tǒng)或甚至是跟從你的應(yīng)用程序匯集數(shù)據(jù)的服務(wù)交互。

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

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

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

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

php artisan app:name SocialNet
上一篇:概覽下一篇:事件