創建一個新的 Laravel 項目
正如官方文檔所言,有兩種方式可以創建一個新的 Laravel 項目,這兩種創建方式都是從命令行執行的:第一種是通過全局的 Laravel 安裝器,另一種是通過 Composer 的 create-project
命令。
推薦使用第一種方式,比較簡單,而執行這兩種方式之前,都需要系統已經安裝過 PHP 和 Composer(如果使用 Valet 或 Laragon 的話,則應該已經安裝過了,如果使用的是 Homestead 或 Laradock 的話,宿主環境也要安裝下,便於后續操作,如果未曾安裝,請參考 Valet 和 Laragon 安裝教程)。
使用 Laravel 安裝器安裝
安裝 Laravel 安裝器很簡單,在命令行執行以下命令即可(如果已經安裝過,會自動進行更新):
composer global require laravel/installer
安裝完成后,后續就可以通過 laravel new [項目名稱]
來創建新的 Laravel 項目了:
laravel new blog
該命令會在當前目錄下創建一個新的名為 blog
的應用:
使用 Composer create-project 命令安裝
除此之外,還可以通過 Composer 自帶的 create-project
命令來安裝新應用:
composer create-project laravel/laravel blog --prefer-dist
效果和上面使用安裝器安裝的一樣,使用這個方式安裝的一個好處是可以安裝舊版本的 Laravel 項目,比如要安裝 5.6 版本的項目 blog56
,可以這么做:
composer create-project laravel/laravel blog56 5.6.* --prefer-dist
Laravel 應用的目錄結構
安裝完成后,我們來看一下新安裝 Laravel 項目 blog
的目錄結構:
目錄
根目錄默認包含一下一級子目錄:
- app:存放應用核心代碼,如模型、控制器、命令、服務等
- bootstrap:存放 Laravel 框架每次啟動時用到的文件
- config:用於存放項目所有配置文件
- database:存放數據庫遷移和填充類文件
- public:Web 應用入口目錄,用於存放入口文件
index.php
及前端資源文件(CSS、JS、圖片等) - resources:用於存放與非 PHP 資源文件,如視圖模板、語言文件、待編譯的 Vue 模板、Sass、JS 源文件
- routes:項目的所有路由文件都定義在這里
- storage:用於存放緩存、日志、上傳文件、已經編譯過的視圖模板等
- tests:存放單元測試及功能測試代碼
- vendor:通過 Composer 安裝的依賴包都存放在這里,通常該目錄會放到
.gitignore
文件里以排除到版本控制系統之外
注:更多關於目錄結構的信息,可參考官方文檔。
文件
.env.example
/.env
:用於配置環境變量,.env.example
是一個示例模板,而.env
是真正的配置文件,由於包含敏感信息,通常也將其放到.gitignore
文件中。artisan
:允許你在項目根目錄下通過php artisan
執行 Artisan 命令.gitignore
和.gitattributes
:Git 配置文件composer.json
和composer.lock
:Composer 配置文件webpack.mix.js
:Laravel Mix Webpack 配置文件,用於編譯和打包前端資源package.json
:配置前端資源依賴和腳本(類似於composer.json
之於 PHP)phpunit.xml
:PHPUnit 配置文件server.php
:用於通過php artisan serve
啟動 PHP 內置服務器進行一些簡單的本地預覽yarn.lock
:類似於composer.lock
之於 Composer,指定 NPM 包版本.editorconfig
:用於在不同 IDE 或編輯器中維護代碼風格的一致性
配置
Laravel 應用的一些核心配置,比如數據庫、隊列、郵件等,都位於 config
目錄下,通過配置文件名稱就可以很直觀地甄別出不同的服務配置。這些配置文件都會返回一個數組,數組中的每個值都可以通過配置鍵獲取(配置鍵以配置文件名為前綴,以「.」號分隔數組層級),例如,如果你在 config/services.php
中定義了如下配置:
// config/services.php
return [
'sparkpost' => [
'secret' => env('SPARKPOST_SECRET'),
],
];
然后,你就可以通過 config('services.sparkpost.secret')
來訪問配置值。
如上例所示,所有的因環境而異的變量配置值(尤其是敏感信息)都應該存放到根目錄下的 .env
環境變量文件中:
SPARKPOST_SECRET = xyj_laravelacademy.org
然后在配置文件中通過 env()
輔助函數傳入鍵名 SPARKPOST_SECRET
來獲取,這樣做有兩個好處:一是將敏感信息存放到版本控制系統(如 Git、Svn)之外,提高了系統的安全性;此外還可以方便我們在不同環境中(每個環境有自己獨立的 .env
文件)使用不同的配置值,提高了代碼的復用性和靈活性。
注:更多配置信息請參考官方文檔。
運行
安裝好 Laravel 項目,了解了目錄結構及其作用,以及如何對項目進行配置后,我們就可以運行這個應用了,啟動方式因開發環境而異,我們在前面的 Homestead、Laradock、Valet 以及 Laragon 中已經分別演示過了,這里不再贅述,我們以 Laradock 為例,通過配置項目域名為 blog.test
,在瀏覽器中訪問 http://blog.test
,即可看到應用首頁: