## **創建一個新的Laravel項目**
正如[官方文檔](https://laravelacademy.org/post/9528.html)所言,有兩種方式可以創建一個新的 Laravel 項目(請確保系統已經安裝過 PHP 和 Composer),這兩種創建方式都是從命令行執行的:第一種是通過全局的 Laravel 安裝器,另一種是通過 Composer 的`create-project`命令。
### **使用 Laravel 安裝器安裝**
安裝 Laravel 安裝器很簡單,在命令行執行以下命令即可(如果已經安裝過,會自動進行更新):
~~~
composer global require laravel/installer
~~~
安裝完成后,后續就可以通過`laravel new [項目名稱]`來創建新的 Laravel 項目了。
### **使用 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`的目錄結構:

> 注:更多關于目錄結構的信息,可參考[官方文檔](https://laravelacademy.org/post/9529.html)。
### **配置**
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`文件)使用不同的配置值,提高了代碼的復用性和靈活性。
> 注:更多配置信息請參考[官方文檔](https://laravelacademy.org/post/9528.html#toc_2)。
## **運行**
安裝好 Laravel 項目,了解了目錄結構及其作用,以及如何對項目進行配置后,我們就可以運行這個應用了。我們以 Valet 為例,通過配置項目域名為`blog.test`,在瀏覽器中訪問`http://blog.test`,即可看到應用首頁。

此外,Laravel開箱提供了基于PHPUnit進行單元測試和功能測試的功能,并且為我們做好了基礎配置(`phpunit.xml`)和示例代碼(位于`tests`目錄下),由于本節并沒有編寫任何代碼,所以可以通過以下命令運行示例測試:
~~~
./vendor/bin/phpunit
~~~