[TOC]
### **1、簡介**
[Laravel](http://laravelacademy.org/tags/laravel "View all posts in Laravel")?應用默認的[目錄結構](http://laravelacademy.org/tags/%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84 "View all posts in 目錄結構")試圖為不管是大型應用還是小型應用提供一個好的起點,當然,你可以自己按照喜好重新組織應用目錄結構,Laravel 對類在何處被加載沒有任何限制——只要 Composer 可以自動載入它們即可。
### **2、根目錄**
新安裝的 Laravel 應用包含許多文件夾:
`app`目錄包含了應用的核心代碼;
`bootstrap`目錄包含了少許文件用于框架的啟動和自動載入配置,還有一個`cache`文件夾用于包含框架生成的啟動文件以提高性能;
`config`目錄包含了應用所有的配置文件;
`database`目錄包含了數據遷移及填充文件,如果你喜歡的話還可以將其作為 SQLite 數據庫存放目錄;
`public`目錄包含了前端控制器和資源文件(圖片、JavaScript、CSS等);
`resources`目錄包含了視圖文件及原生資源文件(LESS、SASS、CoffeeScript),以及本地化文件;
`storage`目錄包含了編譯過的Blade模板、基于文件的session、文件緩存,以及其它由框架生成的文件,該文件夾被細分為成`app`、`framework`和`logs子`目錄,`app`目錄用于存放應用要使用的文件,`framework`目錄用于存放框架生成的文件和緩存,最后,`logs`目錄包含應用的日志文件;
`tests`目錄包含自動化測試,其中已經提供了一個開箱即用的[PHPUnit](https://phpunit.de/)示例;
`vendor`目錄包含[Composer](https://getcomposer.org/)依賴;
### **3、App目錄**
應用的核心代碼位于`app`目錄下,默認情況下,該目錄位于命名空間 App 下, ?并且被 Composer 通過?[PSR-4自動載入標準](http://www.php-fig.org/psr/psr-4/)?自動加載。你可以通過Artisan命令`app:name`來修改該命名空間。
`app`目錄下包含多個子目錄,如`Console`、`Http`、`Providers`等。`Console`和`Http`目錄提供了進入應用核心的API,HTTP協議和CLI是和應用進行交互的兩種機制,但實際上并不包含應用邏輯。換句話說,它們只是兩個向應用發布命令的方式。`Console`目錄包含了所有的Artisan命令,`Http`目錄包含了控制器、中間件和請求等。
`Jobs`目錄是放置隊列任務的地方,應用中的任務可以被隊列化,也可以在當前請求生命周期內同步執行。
`Events`目錄是放置事件類的地方,事件可以用于通知應用其它部分給定的動作已經發生,并提供靈活的解耦的處理。
`Listeners`目錄包含事件的處理器類,處理器接收一個事件并提供對該事件發生后的響應邏輯,比如,`UserRegistered`事件可以被`SendWelcomeEmail`監聽器處理。
`Exceptions`目錄包含應用的異常處理器,同時還是處理應用拋出的任何異常的好地方。
> 注意:`app`目錄中的很多類都可以通過Artisan命令生成,要查看所有有效的命令,可以在終端中運行`php artisan list make`命令。
- 序言
- 發行版本說明
- 升級指南
- 貢獻代碼
- 開始
- 安裝
- 配置
- Laravel Homestead
- 基礎
- HTTP 路由
- HTTP 中間件
- HTTP 控制器
- HTTP 請求
- HTTP 響應
- 視圖
- Blade 模板引擎
- 架構
- 一次請求的生命周期
- 應用目錄結構
- 服務提供者
- 服務容器
- 門面(Facades)
- 數據庫
- 起步
- 查詢構建器
- 遷移
- 填充數據
- Eloquent ORM
- 起步
- 關聯關系
- 集合
- 訪問器&修改器
- 序列化
- 服務
- 用戶認證
- 用戶授權
- Artisan Console
- 訂閱支付實現:Laravel Cashier
- 緩存
- 集合
- 集成前端資源:Laravel Elixir
- 加密
- 錯誤&日志
- 事件
- 文件系統/云存儲
- 哈希
- 輔助函數
- 本地化
- 郵件
- 包開發
- 分頁
- Redis
- 隊列
- Session
- Envoy Task Runner
- 任務調度
- 測試
- 驗證
- 新手入門指南
- 簡單任務管理系統
- 帶用戶功能的任務管理系統