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