對於開發者來說,為自己投資買一臺 Mac,這可是「低投資高回報」,平時在開發 PHP 專案時,常規的做法需要在電腦上安裝一系列開發工具,如: XAMP,還需要配置開發環境,如果涉及到多語言開發,就有可能出現電腦上塞滿了各種工具,電腦基本處於高負荷使用,基本不用做其他事情了。
好在開發 PHP,尤其是基於 Laravel 框架的,完全可以用上 Laravel Valet 了。
Valet 概念
Valet 是為 Mac 提供的極簡主義開發環境,沒有 Vagrant ,也無需 /etc/hosts 檔案,甚至可以使用本地隧道公開共享你的站點。Yeah, we like it too.
Laravel Valet 會在你的 Mac 上將 Nginx 設定為隨系統啟動後臺執行,然後使用 DnsMasq , Valet 將所有的請求代理到 *.dev 域名並指向本地安裝的站點目錄。
換句話說,一個速度極快的 Laravel 開發環境僅僅需要佔用 7MB 記憶體。 Valet 並不是想要替代 Vagrant 或者 Homestead,只是提供另外一種選擇,更加靈活、方便、以及佔用更小的記憶體。
Valet 安裝
1.安裝或更新 Homebrew (brew.sh/) 到最新版本,使用命令 brew update
2.安裝 PHP:brew install homebrew/php/php71
注:如果安裝了其它版本 PHP,可以通過命令 brew link 替換。
3.安裝 Composer: www.phpcomposer.com/
4.通過 composer 安裝 Valet:composer global require laravel/valet
5.執行 valet install 命令。它將會配置並安裝 Valet 和 DnsMasq ,並且將 Valet 的程式註冊為隨系統啟動。
注:Valet 將會在每次系統啟動時自動啟動,而不需要你每次執行 valet start 或 valet install。
Valet 命令
1.valet link app-name
對於每個 Laravel 專案,只要在該專案主目錄下,執行該命令,則 Valet 將會在 ~/.valet/Sites 中建立一個符號連結並指向當前 Laravel 專案目錄。只要在瀏覽器輸入 app-name.dev/ 既可訪問該專案了。
2.valet park
由於開發時,不可能只有一個專案,對於多個專案,只要這些專案都放在同一個目錄下,並執行該命令,只需要在瀏覽器輸入對應的專案名 + (.dev)即可訪問每個專案站點,從而避免於對每個專案都需要執行 valet link app-name。
3.valet forget
和命令 valet park 配套使用,只要在某個站點根路徑執行該命令可在根目錄列表中移除該目錄
4.valet paths
可能長時間使用,忘了自己的站點目錄和站點連結,完全可以執行該命令檢視:
5.valet share
Valet 還提供一個命令將本地站點分享給其他人,這不需要任何額外安裝軟體即可實現。
要分享站點,在你的終端中切換到站點目錄使用該命令。這會生成一個可以公開訪問的 URL連結。只要分享給別人,別人就可以訪問了。
valet 能實現該功能,主要是整合了 Dnsmasq。
Dnsmasq 提供 DNS 快取和 DHCP 服務功能。作為域名解析伺服器(DNS),dnsmasq可以通過快取 DNS 請求來提高對訪問過的網址的連線速度。作為DHCP 伺服器,dnsmasq 可以用於為區域網電腦分配內網ip地址和提供路由。DNS和DHCP兩個功能可以同時或分別單獨實現。dnsmasq輕量且易配置,適用於個人使用者或少於50臺主機的網路。此外它還自帶了一個 PXE 伺服器。
wiki.archlinux.org/index.php/D…)
除錯企業號
Valet 除了能夠提供更便捷的開發環境以外,正因為有了 valet share,可以做的東西就多了,不但可以分享給別人,供別人訪問測試,而且還可以用於企業號,配置服務端訪問,除錯企業號和公眾號。本文拿企業號當 demo 跑跑。
在專案中執行 valet share:
在企業號後臺配置對應的伺服器連結、Token 和 EncodingAESKey
只要配置成功了,除錯企業號或者公眾號一些功能,就可以直接在本地一邊編寫,一邊實時測試了,不至於每次都需要提交程式碼到伺服器測試。
彩蛋
1.valet for Windows
valet 也許不再是 Mac 獨有了。現在有人專門製作 windows 版,至於能不能用,我也不瞭解了:github.com/cretueusebi…
2.valet 可以在滿足於多個框架使用
框架 | 框架 | 框架 |
---|---|---|
Laravel | Lumen | Bedrock |
CakePHP 3 | Concrete5 | contao |
Craft | Drupal | Jigsaw |
Joomla | Katana | kirby |
Magento | OctoberCMS | Sculpin |
Slim | Statamic | Symfony |
WordPress | Zend | Static HTML |
參考
- d.laravel-china.org/docs/5.4/va…
- laravel.com/docs/5.4/va…
- wiki.archlinux.org/index.php/D…
- dotdev.co/laravel-val…
coding01 期待您關注
感謝您能看到這了