Laravel的目錄結構分析

ap0581w9c發表於2015-10-13

根目錄結構
/app
/bootstrap
/public
/vendor
artisan
composer.json
server.php

1./app
整個Laravel 目錄中最需要我們注意的地方,包含設定(config)、路由(routing)、MVC 模型的三大模組都在這裡,專案的主要程式碼工作都在這個目錄下完成。

2./bootstrap
這個目錄主要是用來存放所有的第三方程式碼,包括框架函式原始碼(/vendor/laravel)、外掛和擴充套件等。

3./public
這個目錄是網站的訪問入口,請求都會進入 index.php ,同時存放所有對外開放的資源目錄,如 css、javascript 以及圖片等等皆被存放在此。

4./vendor
這個目錄主要是用來存放所有的第三方程式碼,包括框架函式原始碼(/vendor/laravel)、外掛和擴充套件等。

5.artisan
工匠指令,這是 Laravel 框架裡的命令列工具。

6.composer.json
該檔案是應用的配置檔案,描述了應用的相關資訊,如名稱、版本、許可證照等,同時也寫明瞭應用啟動時會自動載入某些資料夾或檔案,見”autoloand”,所以

當你需要在 controller 或者 model 新增子目錄時可以在 autoload 的 classmap 處申明;也允許你申明應用所需的依賴庫進而會在專案裡幫你安裝依賴庫;

7.server.php
該檔案其實是給php內建的伺服器用的,當使用 php -S localhost:9999 server.php 開啟內建伺服器的時候,就會使用server.php做了部分url相容的工作,往位址列輸入:localhost:9999即可開啟專案主頁。

而在laravel專案的目錄下敲命令:php artisan serve,會預設開啟埠8000,此時輸入http://localhost:8000,可開啟laravel專案的主頁。

不過需將/app/storage設定為可讀寫。

 

Application 目錄結構

/config
/controllers
/databases
/lang
/models
/start
/storage
/tests
/views
filters.php
routes.php

1./config
雖然 Laravel 程式在一開始的使用可以不做任何設定,但我們肯定還需要更多的設定來完成業務上的需求,所有的設定都放在這個目錄中。

2./controllers
這個目錄放 MVC 模型中的控制器(controller) 。

3./database
/migrations/:包含一些PHP類,允許Laravel更新當前資料庫的架構並同時保持所有版本的資料庫的同步。遷移檔案是使用Artisan工具生成的。
/seeds/:       包含允許Artisan工具用關係資料來填充資料庫表的PHP檔案。

4./lang
語言目錄,Laravel 框架的語系採用文字格式,先用目錄做各語系的分別,再依所需要的檔案來存放,預設是英文(“en”)。

轉換語言的方法是 config 目錄下的 application.php 檔案中的language ,設定值與語言資料夾名相同即可。

5./models
MVC 模型中的 M,就是我們的業務邏輯(business logic),基本上就是定義了我們要從資料庫中取出的內容、通過 web service 要傳出的內容等。

原則上,也是搭配著 Laravel 框架中 Eloquent ORM 對資料庫進行存取,包含在 auto-loading 之中。

6./start
包含與 artisan 工具、global(不限定本地環境,無論處於什麼環境都會載入裡面的內容)和 locale 上下文相關的啟動檔案,應用響應請求時會載入這些檔案。

7./storage
儲存 Laravel 各種服務的臨時檔案,如session、cache、log、views等,必須保證可以寫入,由 Laravel 自己維護。

8./tests
Laravel 框架整合了 PHPUnit ,方便我們對專門的程式進行單元測試,所以我們可以直接參考PHPUnit 檔案來編寫單元測試,在全新的檔案目錄中含有 example.test.php 的基本範例。可以使用artisan工具一次性執行所有的測試。

9./views
HTML 的模板(template),也就是 MVC 模型中的 V。而模板除了原始的 HTML 格式外,Laravel 框架提供了 Blade Template Engine ,讓我們可以用比較簡潔的方式編寫模板檔案,而這些檔案只要的副檔名改為 .blade.php ,例如 index.blade.php,模板引擎就會自動幫我們編譯了,想要了解更多的內容,說明檔案 – Blade Template Engine 中有詳細介紹。

10.filters.php
該檔案包含應用程式的篩選方法和一些過濾器,為程式使用。Laravel具有訪問控制和 XSS 保護的一些預定義篩選器。

11.routes.php
路由設定,接收請求,再根據我們的設定呼叫相應的程式進行回應。若是請求不存在或請求失敗則返回 404 或 500 的錯誤回應。


相關文章