Environment Settings.
開發環境
- Homestead
- Valet 👍
Homestead
整套開發映像
一個完整的 ubuntu 開發鏡像
看起來很好啊,為什麼不用?
多完整?
上天下海全包了
優點
完全隔離開發環境(有問題就重新掛 image)
不用擔心開發環境被污染
確保開發人員 co-work 時可以一致的環境,不會出現 “我這邊可以你那邊不行的狀況”
映像檔
https://github.com/laravel/settler
Ubuntu 16.04
Git PHP 7.1
Nginx
MySQL
MariaDB
Sqlite3
Postgres
Composer
Node (With Yarn, Bower, Grunt, and Gulp) Redis
Memcached
Beanstalkd
Mailhog
ngrok
因為他消耗電腦資源相當大。
想像一下你開用 MAC 裡面再開一台 ubuntu 而且這個 ubuntu 裡面還掛了一堆組件。
你要額外裝底層包你要很了 ubuntu,雖然沒問題但是還是成本。
But! 即使如此還是很推薦它。
因為環境隔離可以讓你少了很多不必要的注意點。專注在程式邏輯。
Valet
超輕量開發環境
那他跟 Homestead 最大差別在哪?
Only on Mac
A blazing fast Laravel development environment that uses roughly 7 MB of RAM.
But
如果缺少 extension 必須自己找包
意思就是它不像 Homestead 一樣包山包海。
但是還是很好用
實作安裝與配置
前置安裝需求
用 homebrew 安裝
PHP7.1(latest version.)
MySQL 5.7(latest version.)
Global Valet
$ composer global require laravel/valet
重啟一下 terminal / 安裝
$ valet install
然後就好了!?
其實你在安裝 valet 的時候他就幫你裝好了
https://github.com/laravel/valet
測試端點有沒有運行
Park directory
$ mkdir ~/Sites
$ cd ~
切到 user 根目錄下
建立 folder,這邊可以自己定義
(不過建議還是 Site,homestead 是 Code)
$ cd Sites
進到 Site
然後帕克
$ valet park
馬上來蓋一個 Laravel project 吧!
你要蓋其他的也可以,只要 link 好就好了。
https://laravel.com/docs/5.4/valet
$ laravel new blog
等等!這指令從哪來的?
https://laravel.com/docs/5.4/installation
$ composer create-project --prefer-dist laravel/laravel blog
composer 的方式也 OK !
這我知道!接下來是不是要到 hosts 劫持域名?
代誌不是憨人想的那麼簡單
這樣做的話跟你用 docker, image 對應 port IP 劫持域名差別在哪?
完全不需要做!Valet 都做好了!
好吧,他其實是透過 Dnsmasq 這個搞定的,有興趣再深入研究吧。
https://zh.wikipedia.org/wiki/Dnsmasq
我剛建立好了 laravel new blog,那麼我該怎麼拜訪他呢?
project.dev
以剛剛的例子來說:blog.dev
等等!你這太黑箱了,如果我有額外需求呢?
如果我的專案有 subdomain 的話...
blog.dev //web
api.blog.dev //api
Routing in Laravel
RouteServiceProvider
<?php
....
protected function mapApiRoutes()
{
Route::middleware('api')
//跟 laravel 說你要他是 subdomain, 也可以寫成 'api.' . env('APP_URL')
->domain('api.blog.dev')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
跟 Valet 說你要 link
$ valet link api.blog
如果說我要立馬 demo 給外部的人看你該怎麼辦?
哼哼哼,這你一定要測試機了吧!
用 valet share
再也不用 deploy 到測試機之後才能確定 flow 了。
$ valet share
他連 SSL 都有
But
如果是本地端要開 SSL 你就沒辦法了吧?
透過 valet secure
$ valet secure blog
想了解更多或需求
直接看文件,文件寫的就是全部的了。
同場加映
開發工具選用
Editor/IDE
PHPStorm
Sublime
Terminal
iTerm2
DBMS
Sequel Pro
btw, 他有 nightly version.
https://sequelpro.com/test-builds
Chrome plugins
JSONView
看 json 格式的文本賞心悅目
檢查網站工具
Wappalyzer
Others
效率工具
- trello
- wunderlist
- postman
- hackmd
- bearapp
- Spectacle
Develop tooling.
ide_helper, debugbar, laravel plugin, phpstorm hacking.
Environment Settings
By Yi-hsuan Lai
Environment Settings
for training
- 481