圖 1.1 顯示了 Laravel 項目目錄結構是什么樣子:
圖1.1 Laravel 項目目錄結構
就如你看到這樣,laravel下面只包含了4個文件夾,這4個文件夾下面有一些子文件夾,這種豐富的子文件夾在第一次看到是不是有壓力?我會逐個介紹。我們大部分的開發工作都會在app/文件夾下面進行。
下面是各個文件夾和文件的基本介紹:
頂級文件夾 |
作用 |
app |
包含了站點的controllers(控制器),models(模型),views(視圖)和assets(資源)。這些是網站運行的主要代碼,你會將你大部分的時間花在這些上面。 |
bootstrap |
用來存放系統啟動時需要的文件,這些文件會被如index.php這樣的文件調用。 |
public |
這個文件夾是唯一外界可以看到的,是必須指向你web服務器的目錄。它含有laravel框架核心的引導文件index.php,這個目錄也可用來存放任何可以公開的靜態資源,如css,Javascript,images等。 |
vendor |
用來存放所有的第三方代碼,在一個典型的Laravel應用程序,這包括Laravel源代碼及其相關,並含有額外的預包裝功能的插件。 |
正如上面提到的,/app是所有的樂趣產生的地方,讓我們更深入的看看這個目錄的結構。
圖 1.2 顯示/app文件夾的詳細信息:
圖1.2 app 文件夾詳細信息
下面是詳細介紹:
文件的文件夾 |
作用 |
/app/config/ |
配置應用程序的運行時規則、 數據庫、 session等等。包含大量的用來更改框架的各個方面的配置文件。大部分的配置文件中返回的選項關聯PHP數組。 |
/app/config/app.php |
各種應用程序級設置,即時區、 區域設置(語言環境)、 調試模式和獨特的加密密鑰。 |
/app/config/auth.php |
控制在應用程序中如何進行身份驗證,即身份驗證驅動程序。 |
/app/config/cache.php |
如果應用程序利用緩存來加快響應時間,要在此配置該功能。 |
/app/config/compile.php |
在此處可以指定一些額外類,去包含由‘artisan optimize’命令聲稱的編譯文件。這些應該是被包括在基本上每個請求到應用程序中的類。 |
/app/config/database.php |
包含數據庫的相關配置信息,即默認數據庫引擎和連接信息。 |
/app/config/mail.php |
為電子郵件發件引擎的配置文件,即 SMTP 服務器,From:標頭 |
/app/config/session.php |
控制Laravel怎樣管理用戶sessions,即session driver, session lifetime。 |
/app/config/view.php |
模板系統的雜項配置。 |
/app/controllers |
包含用於提供基本的邏輯、 數據模型交互以及加載應用程序的視圖文件的控制器類。 |
/app/database/migrations/ |
包含一些 PHP 類,允許 Laravel更新當前數據庫的架構並同時保持所有版本的數據庫的同步。遷移文件是使用Artisan工具生成的。 |
/app/database/seeds/ |
包含允許Artisan工具用關系數據來填充數據庫表的 PHP 文件。 |
/app/lang/ |
PHP 文件,其中包含使應用程序易於本地化的字符串的數組。默認情況下目錄包含英語語言的分頁和表單驗證的語言行。 |
/app/models/ |
模型是代表應用程序的信息(數據)和操作數據的規則的一些類。在大多數情況下,數據庫中的每個表將對應應用中的一個模型。應用程序業務邏輯的大部分將集中在模型中。 |
/app/start/ |
包含與Artisan工具以及全球和本地上下文相關的自定義設置。 |
/app/storage/ |
該目錄存儲Laravel各種服務的臨時文件,如session, cache, compiled view templates。這個目錄在web服務器上必須是可以寫入的。該目錄由Laravel維護,我們可以不關心。 |
/app/tests/ |
該文件夾給你提供了一個方便的位置,用來做單元測試。如果你使用PHPUnit,你可以使用Artisan工具一次執行所有的測試。 |
/app/views/ |
該文件夾包含了控制器或者路由使用的HTML模版。請注意,這個文件夾下你只能放置模版文件。其他的靜態資源文件如css, javascript和images文件應該放在/public文件夾下。 |
/app/routes.php |
這是您的應用程序的路由文件,其中包含路由規則,告訴 Laravel 如何將傳入的請求連接到路由處理的閉包函數、 控制器和操作。該文件還包含幾個事件聲明,包括錯誤頁的,可以用於定義視圖的composers。 |
/app/filters.php |
此文件包含各種應用程序和路由篩選方法,用來改變您的應用程序的結果。Laravel 具有訪問控制和 XSS 保護的一些預定義篩選器。 |
花了很多心思在建立和命名文件夾上,得到的就是一個具有良好的文件系統的應用程序。