# 簡介
Laravel 為開發者提供了一套完善的重量級本地開發環境 —— Laravel Homestead。
Laravel Homestead 實際是一個打包好各種 Laravel 開發所需軟件和工具的 `Vagrant` 盒子(關于 Vagrant 盒子的釋義請參考 `Vagrant 官方文檔`),該盒子為我們提供了一個優秀的開發環境,有了它,我們不再需要在本地環境安裝 PHP、Composer、Nginx、MySQL、Memcached、Redis、Node 等其它工具軟件,我們也完全不用再擔心誤操作搞亂操作系統 —— 因為 Vagrant 盒子是一次性的,如果出現錯誤,可以在數分鐘內銷毀并重新創建該 Vagrant 盒子!
為什么說它是重量級的開發環境呢?誰用誰知道,要使用上這個開發環境,你需要安裝 Vagrant、VirtualBox,下載 Homestead 對應的 Vagrant 盒子,經歷一系列下載、安裝和配置之后才能使用(可能需要花費數小時),如果是 Mac 或 Linux 系統可能還比較順利,如果是 Windows 系統的話就得先燒柱香拜拜菩薩再開始,保佑一切順利,哈哈,開玩笑啦,不過 Windows 確實相對而言出問題的概率比較大。
有人要說了,聽上去這么復雜,我就不用了,不過相信我吧,這點時間都會在日后因為 Homestead 強大完善的功能在開發過程中補回來,正所謂磨刀不誤砍柴功,Homestead 不僅為你提供了一整套日后開發所需要的工具,而且與 Laravel 配置文件默認配置無縫結合,省去了很多配置的麻煩,此外,如果是在團隊中開發的話,Homestead 還為你們提供了一致的開發環境,避免因為不同開發人員使用的工具軟件版本不同造成線上的問題,這三個理由,我想足夠可以說服你了。
當然,如果你只是想簡單嘗鮮,不使用 Homestead 也無可厚非,畢竟 Mac 下有 Valet,Windows 下則可以使用 Xampp 之類的便捷工具包,但是如果是工程化開發,走正規軍路子還是推薦使用 Homestead。
> 注:如果你使用的是 Windows,需要開啟系統的硬件虛擬化(VT-x),這通常可以通過 BIOS 來開啟。如果你是在 UEFI 系統上使用 Hyper-V,則需要關閉 Hyper-V 以便可以訪問 VT-x。
## 預裝軟件
Homestead 可以運行在 Windows、Mac 以及 Linux 等主流操作系統上,預裝的軟件和工具列表如下:
* Ubuntu 16.04
* Git
* PHP 7.2
* PHP 7.1
* PHP 7.0
* PHP 5.6
* Nginx
* Apache(可選)
* MySQL
* MariaDB(可選)
* SQLite3
* PostgresSQL
* Composer
* Node(With Yarn, Bower, Grunt, and Gulp)
* Redis
* Memcached
* Beanstalkd
* Mailhog
* Elasticsearch(可選)
* ngrok
# 安裝 & 設置
## 首次安裝
在使用 Homestead 之前,需要先安裝 `Virtual Box 5.2`、`VMWare`、`Parallels` 或 `Hyper-V` (四選一,我們通常選擇 VirtualBox,因為只有它是免費的)以及 `Vagrant`,所有這些軟件包都為常用操作系統提供了一個便于使用的可視化安裝器,通過安裝界面引導就可以完成安裝。
要使用 VMware 的話,需要購買 VMware Fusion(Mac) / Workstation(Windows) 以及 `VMware Vagrant` 插件,盡管不便宜,一套下來要 1000 多塊人民幣,但是 VMware 可以提供更好的性能和體驗(廢話,不然誰用,不過考慮到這個價格,只能呵呵了)。
要使用 Parallels 的話,需要安裝 `Parallels Vagrant` 插件,這是免費的(僅僅是插件免費哈)。
由于 `Vagrant 限制`的因素,Hyper-V 提供者會忽略所有網絡設置。
**安裝 Homestead Vagrant 盒子**
VirtualBox/VMWare 和 Vagrant 安裝好了之后,在終端中使用如下命令將
Homestead Vagrant 盒子 `laravel/homesterad` 添加到 Vagrant 中。下載該盒子將會花費一些時間,具體時間長短主要取決于你的網絡連接速度:
~~~
vagrant box add laravel/homestead
~~~
:-: 
如果上述命令執行失敗,需要確認 Vagrant 是否是最新版本。
運行命令會列出一個選擇列表,選擇 `virtualbox` 對應選項即可,然后進入漫長的下載等待,看看多喜人,還要6小時40分鐘才能下載完成,基本上一覺醒來的節奏,還是在使用了 VPN 翻墻的情況下,如果一直提示網絡超時的話只能去 Vagrant 官網下載了:`https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.5.0/providers/virtualbox.box`,通過這種方式下載的話需要手動將其添加到 Vagrant:
~~~
vagrant box add laravel/homestead ~/Downloads/virtualbox.box
~~~
運行上述命令有可能報錯:
~~~
Check your Homestead.yaml file, the path to your private key does not exist.
~~~
解決辦法如下:
~~~
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
~~~
再次運行上述命令即可添加成功:
:-: 
**安裝 Homestead**
你可以通過克隆倉庫代碼來實現 `Homestead` 安裝。將倉庫克隆到用戶目錄下的 Homestead 目錄,這樣 Homestead 盒子就可以作為所有其他 Laravel 項目的主機:
~~~
cd ~
git clone https://github.com/laravel/homestead.git Homestead
~~~
克隆完成后,你需要檢查 Homestead 的版本標簽,因為 `master` 分支不會總是穩定版本,你可以在 `GitHub Release Page` 查找到最新穩定版本然后在本地將其檢出:
cd Homestead
~~~
// Clone the desired release...
git checkout v7.1.2
~~~
接下來,在 `Homestead` 目錄下運行 `bash init.sh` 命令來創建 `Homestead.yaml` 配置文件,生成的 `Homestead.yaml` 配置文件文件位于當前 `Homestead` 目錄:
~~~
// Mac/Linux...
bash init.sh
// Windows...
init.bat
~~~
## 配置 Homestead
**設置 Provider**
`Homestead.yaml` 文件中的 `provider` 鍵表示使用哪個 Vagrant 提供者:`virtualbox`、`vmware_fushion`、 `vmware_workstation`、`parallels` 或 `hyperv`,你可以將其設置為自己選擇的提供者,當然對大部分人來說也沒得選:
~~~
provider: virtualbox
~~~
**配置共享文件夾**
`Homestead.yaml` 文件中的 `folders` 屬性列出了所有主機和 Homestead 虛擬機共享的文件夾,一旦這些目錄中的文件有了修改,將會在本地和 Homestead 虛擬機之間保持同步,如果有需要的話,你可以配置多個共享文件夾:
~~~
folders:
- map: ~/Development
to: /home/vagrant/Code
~~~
如果你只是創建了很少的站點,使用一般的映射就夠了。不過,隨著站點數量的增加,你就會遇到性能問題,尤其是在包含大量文件的低端機器或項目中,性能問題可能會非常明顯。如果你不幸遇到了這個問題,可以嘗試映射每個項目到各自的 Vagrant 文件夾:
~~~
folders:
- map: ~/code/project1
to: /home/vagrant/code/project1
- map: ~/code/project2
to: /home/vagrant/code/project2
~~~
如果要開啟 `NFS`,只需簡單添加一個標識到同步文件夾配置:
~~~
folders:
- map: ~/Development
to: /home/vagrant/Code
type: "nfs"
~~~
> 注:使用 NFS 的話,需要考慮安裝 vagrant-bindfs 插件。該插件可用于在 Homestead 盒子中為文件和目錄維護正確的用戶/組權限。
你還可以通過 `options` 傳遞其他 Vagrant 支持的`同步文件夾`選項:
~~~
folders:
- map: ~/code
to: /home/vagrant/code
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]
~~~
**配置 Nginx 站點**
對 Nginx 不熟?沒關系!通過 `sites` 屬性你可以方便地將“域名”映射到 Homestead 虛擬機的指定目錄,`Homestead.yaml` 中默認已經配置了一個示例站點。和共享文件夾一樣,你可以配置多個站點:
~~~
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
~~~
如果你是在 Homestead 盒子啟動之后進行了上述修改,需要運行 `vagrant reload --provision` 更新虛擬機上的 Nginx 配置。
**Hosts文件**
不要忘記把 Nginx 站點配置中的域名添加到本地機器上的 `hosts` 文件中,該文件會將對本地域名的請求重定向到 Homestead 虛擬機,在 Mac 或 Linux上,該文件位于 `/etc/hosts`,在 Windows 上,位于 `C:\Windows\System32\drivers\etc\hosts`,添加方式如下:
~~~
192.168.10.10 homestead.test
~~~
確保 IP 地址和你的 `Homestead.yaml` 文件中列出的一致,一旦你將域名添加到 `hosts` 文件,就可以在瀏覽器中通過該域名訪問站點了:
~~~
http://homestead.test
~~~
> 注:在真正可以訪問之前還需要通過 Vagrant 啟動虛擬機上的 Homestead 盒子。
## 啟動 Vagrant 盒子
配置好 `Homestead.yaml` 文件后,在 `Homestead` 目錄下運行 `vagrant up` 命令,Vagrant 將會啟動虛擬機并自動配置共享文件夾以及 Nginx 站點,初次啟動需要花費一點時間進行初始化:
:-: 
啟動之后,就可以在瀏覽器中通過 `http://homestead.test` 訪問 Laravel 應用了(前提是 Web 目錄下已經部署 Laravel 應用代碼):
:-: 
要登錄到該虛擬機,使用 `vagrant ssh` 命令;關閉該虛擬機,可以使用 `vagrant halt` 命令;銷毀該虛擬機,可以使用 `vagrant destroy --force` 命令。
## 為指定項目安裝 Homestead
全局安裝 Homestead 將會使每個項目共享同一個 Homestead 盒子,你還可以為每個項目單獨安裝 Homestead,這樣就會在該項目下創建 `Vagrantfile`,允許其他人在該項目中執行 `vagrant up` 命令,在指定項目根目錄下使用 Composer 執行安裝命令如下:
~~~
composer require laravel/homestead --dev
~~~
這樣就在項目中安裝了 Homestead。Homestead 安裝完成后,使用 `make` 命令生成 `Vagrantfile` 和 `Homestead.yaml` 文件,`make` 命令將會自動配置 `Homestead.yaml` 中的 `sites` 和 `folders` 屬性。該命令執行方式如下:
Mac/Linux:
~~~
php vendor/bin/homestead make
~~~
Windows:
~~~
vendor\bin\homestead make
~~~
接下來,在終端中運行 `vagrant up` 命令然后在瀏覽器中通過 http://homestead.test 訪問站點。不要忘記在 /etc/hosts 文件中添加域名 `homestead.test`(已配置的話忽略)。
## 安裝 MariaDB
如果你希望使用 MariaDB 來替代 MySQL,可以添加 `mariadb` 配置項到 `Homestead.yaml` 文件,該選項會移除 MySQL 并安裝 MariaDB,MariaDB 是 MySQL 的替代品,完全兼容 MySQL,所以在應用數據庫配置中你仍然可以使用 `mysql` 驅動:
~~~
box: laravel/homestead
ip: "192.168.10.10"
memory: 2048
cpus: 4
provider: virtualbox
mariadb: true
~~~
## 安裝 Elasticsearch
要安裝 Elasticsearch,需要添加 `elasticsearch` 到 `Homestead.yaml` 文件并指定一個支持的版本。默認安裝會創建一個名為「homestead」的集群,不要給 Elasticsearch 分配超過操作系統一半的內存,因此確保 Homestead 機器內存至少是分配給 Elasticsearch 的兩倍:
~~~
box: laravel/homestead
ip: "192.168.10.10"
memory: 4096
cpus: 4
provider: virtualbox
elasticsearch: 6
~~~
> 注:查看 Elasticsearch 文檔學習如何自定義配置。
## 別名
你可以在 Homestead 目錄下通過編輯 `aliases` 文件為 Homestead 機器添加 Bash 別名:
~~~
alias c='clear'
alias ..='cd ..'
~~~
更新完 `aliases` 文件后,需要通過` vagrant reload --provision` 命令重啟 Homestead 機器,以確保新的別名在機器上生效。
# 日常使用
## 全局訪問 Homestead
要想在文件系統的任意路徑都能夠運行 `vagrant up` 啟動 Homestead 虛擬機,在 Mac/Linux 系統中,可以添加 `Bash` 函數到 `~/.bash_profile`;在 Windows 系統上,需要添加“批處理”文件到 PATH。這些腳本允許你在系統的任意位置運行 Vagrant 命令,并且把命令執行位置指向 Homestead 的安裝路徑。
**Mac/Linux**
~~~
function homestead() {
( cd ~/Homestead && vagrant $* )
}
~~~
確保將該函數中的 `~/Homestead` 路徑調整為指向實際的 `Homestead` 安裝路徑。這樣你就可以在系統的任意位置運行 `homestead up` 或 `homestead ssh` 來啟動/登錄虛擬機:
:-: 
> 補充知識點:`/etc/profile` 和 `~/.bash_profile` 都可以用來設置系統 `PATH`,不同之處在于前者是給系統超級用戶使用,后者是給普通登錄用戶使用的,此外要讓 `~/.bash_profile` 修改后生效,有兩種方法,一種是退出系統重新登錄,一種是使用 `source ~/.bash_profile` 命令。
**Windows**
在系統的任意位置創建一個批處理文件 `homestead.bat`:
~~~
@echo off
set cwd=%cd%
set homesteadVagrant=C:\Homestead
cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%
set cwd=
set homesteadVagrant=
~~~
你需要將腳本中實例路徑 `C:\Homestead` 調整為 Homestead 實際安裝路徑。創建文件之后,添加文件路徑到 `PATH`,這樣你就可以在系統的任意位置運行 `homestead up` 或 `homestead ssh` 命令了。
## 通過 SSH 連接
你可以在 `Homestead` 目錄下通過運行 `vagrant ssh` 以 SSH 方式連接到虛擬機。如果你設置了全部訪問 Homestead,也可以在任意路徑下通過 `homestead ssh` 登錄到虛擬機。
如果你需要以更簡捷的方式連接到 Homestead,可以為主機添加一個別名來快速連接到 Homestead 盒子,創建完別名后,可以使用 `vm` 命令從任何地方以 SSH 方式連接到 Homestead 虛擬機:
~~~
alias vm="ssh vagrant@127.0.0.1 -p 2222"
~~~
## 連接到數據庫
Homestead 默認已經在虛擬機中為 MySQL 和 Postgres 數據庫做好了配置,更方便的是,這些配置值與 Laravel 的 `.env` 中默認提供的配置一致。
想要通過本地的 Navicat 或 Sequel Pro 連接到 Homestead 上的 MySQL 或 Postgres 數據庫,可以通過新建連接來實現,主機 IP 都是 127.0.0.1,對于 MySQL 而言,端口號是 `33060`,對 Postgres 而言,端口號是 `54320`,用戶名/密碼是 `homestead/secret`:
:-: 
> 注:只有從本地連接 Homestead 的數據庫時才能使用這些非標準的端口,在 Homestead 虛擬機中還是應該使用默認的 3306 和 5432 端口進行數據庫連接配置。
## 添加更多站點
Homestead 虛擬機在運行時,可能需要添加多個 Laravel 應用到 Nginx 站點。如果是在單個 Homestead 環境中運行多個 Laravel 應用,添加站點很簡單,只需將站點添加到 `Homestead.yaml` 文件,然后在 `Homestead` 目錄中運行 `vagrant provision` 命令即可:
~~~
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
- map: another.test
to: /home/vagrant/Code/another/public
~~~
如果 Vagrant 不是自動管理“hosts”文件,仍然需要添加站點域名到本地 `hosts` 文件:
~~~
192.168.10.10 homestead.test
192.168.10.10 another.test
~~~
添加完站點后,在 `Homestead` 目錄下運行 `vagrant reload --provision` 命令重啟虛擬機。
**站點類型**
Homestead 支持多種框架,所以即使你沒有使用 Laravel 的話,也可以使用 Homestead,例如,我們可以通過 `symfony2` 站點類型輕松添加一個 Symfony 應用:
~~~
sites:
- map: symfony2.test
to: /home/vagrant/Code/Symfony/web
type: symfony2
~~~
目前支持的站點類型包括 `apache`、`laravel`(默認)、`proxy`、`silverstripe`、`statamic`、`symfony2` 和 `symfony4`。
**站點參數**
你也可以通過站點指令 `params` 添加額外的 Nginx `fastcgi_param` 值。例如我們可以添加一個 `FOO` 參數,對應參數值是 `BAR`:
~~~
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
params:
- key: FOO
value: BAR
~~~
## 環境變量
你可以通過將變量添加到 `Homestead.yaml` 文件來設置全局環境變量:
~~~
variables:
- key: APP_ENV
value: local
- key: FOO
value: bar
~~~
更新完 `Homestead.yaml` 文件后,需要通過 `vagrant reload --provision` 命令重啟機器,這將會更新所有已安裝版本 PHP 的 PHP-FPM 配置并且為 `vagrant` 用戶更新環境。
## 配置 Cron 調度任務
Laravel 提供了很方便的方式來`調度 Cron 任務`:只需每分鐘調度運行一次 Artisan 命令 `schedule:run` 即可。`schedule:run` 會檢查定義在 `App\Console\Kernel` 類中定義的調度任務并判斷運行哪些任務。
如果想要為某個 Homestead 站點運行 `schedule:run` 命令,需要在定義站點時設置 `schedule` 為 `true`:
~~~
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
schedule: true
~~~
該站點的 Cron 任務會被定義在虛擬機的 `/etc/cron.d` 目錄下:
:-: 
## 配置 Maillog
通過 Maillog 可以輕松攔截發送出去的郵件并進行檢查而不必真的將其發送給接收人。開始之前,需要更新 `.env` 文件使用如下郵件配置:
~~~
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
~~~
## 端口轉發配置
默認情況下,Homestead 端口轉發配置如下:
* SSH: 2222 → Forwards To 22
* ngrok UI: 4040 → Forwards To 4040
* HTTP: 8000 → Forwards To 80
* HTTPS: 44300 → Forwards To 443
* MySQL: 33060 → Forwards To 3306
* Postgres: 54320 → Forwards To 5432
* Mailhog: 8025 → Forwards To 8025
**轉發更多端口**
如果你想要為 Vagrant 盒子添加更多端口轉發,做如下轉發協議設置即可:
~~~
ports:
- send: 50000
to: 5000
- send: 7777
to: 777
protocol: udp
~~~
## 分享你的環境
有時候你可能希望和同事或客戶分享自己當前的工作進度或成果,Vagrant 本身支持通過 `vagrant share` 來支持這個功能;不過,如果你在 `Homestead.yaml` 文件中配置了多個站點的話就不行了。
為了解決這個問題,Homestead 內置了自己的 `share` 命令,該功能實現的原理是通過 `Ngrok`將本地服務分享到互聯網上進行公開訪問,關于該軟件的細節我們這里不討論,大家可以自行百度,我們主要關注在 Homestead 中如何使用這一功能。首先通過 `vagrant ssh` 登錄到 Homestead 虛擬機然后運行 `share homestead.test` 命令,這樣就可以分享 `homestead.test` 站點了,其他站點分享以此類推:
~~~
share homestead.test
~~~
運行完該命令之后,你就可以看到一個 Ngrok 界面出現,其中包含活動日志和分享站點所需的公開訪問 URL:
:-: 
可以看到我的分享 URL 是 `http://95920d84.ngrok.io/ `以及 `https://95920d84.ngrok.io/`,你可以通過這兩個域名在任意聯網機器上訪問我的 Homestead 站點:
:-: 
如果你想要指定一個自定義的區域,子域名或者其他 Ngrok 運行時選項,可以將它們添加到 `share` 命令:
~~~
share homestead.test -region=eu -subdomain=laravel
~~~
目前自定義域名只有付費用戶才可以使用,所以 `subdomain` 會提示不可用。
> 注:記住兩個點,一個是 Vagrant 并沒有什么特別的安全防范措施,另一個是當你運行 share 命令的時候,你其實是在將自己的虛擬機曝光到互聯網上。所以,當你要分享自己的站點之前,先想想安全隱患,并將其規避掉。
## 多個 PHP 版本
> 注:該功能只在 Nginx 下有效。
Homestead 6 引入了在單個虛擬機中支持多個 PHP 版本的功能,你可以在 `Homestead.yaml` 文件中為特定站點指定 PHP 版本,目前支持的 PHP 版本包括 `5.6`、`7.0` 和 `7.1` 和 `7.2`:
~~~
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
php: "5.6"
~~~
該功能實現的原理是通過 `Homestead.yaml` 中配置的 PHP 版本在 Homestead 中啟動相應的 `php-fpm` 服務,然后更新 Nginx 中相應的站點配置:
:-: 
此外,你可以在 CLI 中使用任意版本的 PHP:
~~~
php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
~~~
## Web 服務器
Homestead 使用 Nginx 作為默認 Web 服務器。不過,如果指定 apache 作為站點類型,也會安裝 Apache。兩個 Web 服務器可以同時安裝,但是不能同時運行。Shell 命令 `flip` 可用于簡化在不同 Web 服務器之間的切換處理,其工作原理是先自動判斷哪個 Web 服務器正在運行,然后將其關閉,接著啟動另一個服務器。要使用這個命令,需要 SSH 登錄到 Homestead 機器并在終端中運行:
~~~
flip
~~~
# 網絡接口
`Homestead.yaml` 的 `networks` 屬性用于配置 Homestead 的網絡接口,你可以想配多少就配多少:
~~~
networks:
- type: "private_network"
ip: "192.168.10.20"
~~~
要開啟 `bridged` (橋接模式)接口,需要配置 `bridge` 設置并修改網絡類型為 `public_network` :
~~~
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
~~~
`要開啟DHCP`(動態主機配置協議),只需要從配置中移除 `ip` 選項即可:
~~~
networks:
- type: "public_network"
bridge: "en1: Wi-Fi (AirPort)"
~~~
# 更新 Homestead
更新 Homestead 只需兩步即可,首先,使用 `vagrant box update` 命令更新 Vagrant 盒子:
~~~
vagrant box update
~~~
接下來,需要更新 Homestead 源碼,如果你是通過 Github 倉庫安裝的,只需在克隆倉庫的地方運行 `git pull origin master` 即可。
如果你是通過項目的 `composer.json` 文件安裝的 Homestead,需要確保 `composer.json` 文件包含 `"laravel/homestead": "^7"` 并更新你的依賴:
~~~
composer update
~~~
# 虛擬機指定設置
## VirtualBox
`natdnshostresolver`
默認情況下,Homestead 配置項 `natdnshostresolver` 被設置為 `on`,從而允許 Homestead 使用主機操作系統的 DNS 配置,如果你想要覆蓋這個行為,添加如下行到 `Homestead.yaml` 文件:
~~~
provider: virtualbox
natdnshostresolver: off
~~~
## Windows 上的符號鏈接
如果符號鏈接在 Windows 機器上不能正常工作,可能需要添加如下區塊到 `Vagrantfile`:
~~~
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
~~~
- 序言
- 新版特性
- 快速入門
- 升級指南
- 貢獻指南
- API文檔
- 安裝配置
- 目錄結構
- Homestead
- Valet
- 部署
- 核心概念
- 請求生命周期
- 服務容器
- 服務提供者
- 門面(Facades)
- 契約(Contracts)
- 框架基礎
- 路由
- 中間件
- CSRF 保護
- 控制器
- 請求
- 響應
- 視圖
- 生成 URL
- Session
- 驗證
- 錯誤處理
- 日志
- 前端開發
- Blade 模板
- 本地化
- 前端腳手架
- 編譯前端資源(Laravel Mix)
- 安全系列
- 登錄認證
- API 認證
- 授權
- 加密
- 哈希
- 重置密碼
- 進階系列
- Artisan 控制臺
- 集合
- 廣播
- 緩存
- 事件
- 文件存儲
- 輔助函數
- 郵件
- 通知
- 擴展包開發
- 隊列
- 任務調度
- 數據庫操作
- 快速入門
- 查詢構建器
- 分頁
- 遷移
- 數據填充
- Redis
- Eloquent ORM
- 快速入門
- 關聯關系
- 集合
- 訪問器 & 修改器
- API 資源類
- 序列化
- 應用測試
- 快速入門
- HTTP 測試
- 瀏覽器測試
- 數據庫測試
- 模擬
- 官方擴展包
- Cashier(訂閱支付解決方案)
- Envoy(遠程操作解決方案)
- Horizon(隊列系統解決方案)
- Passport(API 認證解決方案)
- Scout(全文搜索解決方案)
- Socialite(第三方登錄解決方案)
- 相關下載
- Laravel 5.6 中文文檔離線版
- Laravel 5.6 一鍵安裝包