要進入Phoenix之前,首先我們需要安裝Elixir
安裝的步驟相當簡單
假設你在MAC環境而且已經有使用Homebrew
$ brew update
$ brew install elixir
如果是其他環境的話,可以參考這邊
安裝完Elixir以後
你就可以使用iex,類似ruby的irb
也可以在這邊練習Elixir語法
$ iex
Erlang/OTP 20 [erts-9.0.5] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Interactive Elixir (1.5.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
在進入iex時可以看到安裝的版本
以我為例是Elixir 1.5.1
如果你只是單純想查詢版本,可以用-v
$ elixir -v
Erlang/OTP 20 [erts-9.0.5] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.5.1
建議至少在1.4以上
安裝完Elixir後,理論上你也裝好Erlang了
如果你貼上這行
$ erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
"20"
他會回傳你目前的Erlang版本,以我為例是OTP 20
你的版本應該大於等於20,請確保至少大於18
凡事總有意外,如果你沒有順利安裝好Erlang
可以參考官方指南
在安裝Phoenix之前,我們還需要先安裝Hex
他是Elixir 的外掛管理器,可以理解為ruby的bundler
$ mix local.hex --force
注意到我們用了一個陌生的指令mix
這個是Elixir 的命令工具,提供許多方便的功能,
比如說新增元件、編譯、測試等等
前面鋪陳了這麼多,終於要安裝Phoenix了
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Phoenix 預設使用 brunch.io 来管理靜態資源,
而 brunch 是基於 Node.js 開發的,所以如果你會用到靜態前端
就需要安裝node
但假如你只需要開發API,不使用任何js, css等靜態資源
就可以略過
$ node --version
v8.0.0
確認一下版本大於5.0.0
如果你需要安裝,請參考官方說明
Phoenix 預設使用PostgreSQL,當然你也可以選擇MySQL或MongoDB
都有對應的支援
如果你照著步驟做,到這邊環境已經安裝完成
我覺得不算太困難
現在我們馬上來新增第一個Phoenix專案吧!
$ mix phx.new hello
Phoenix就會在當前的路徑創造一個名稱為hello的專案
如果你想要指定資料庫,可以加上參數,例如:
$ mix phx.new hello --database mysql
當然,如果你的專案已經創建好了
你依然可以在裡面的設定檔更改資料庫
在建立的過程中,他會問你要不要安裝相關的外掛
Fetch and install dependencies? [Yn]
預設是Y
,所以大膽的Enter按下去就可以了(除非你很確定你不需要)
安裝完後,你會看到下面的提示訊息:
We are all set! Go into your application by running:
$ cd hello
Then configure your database in config/dev.exs and run:
$ mix ecto.create
Start your Phoenix app with:
$ mix phx.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phx.server
這邊基本上就說明了接下來的步驟
同時也是幾個常用的指令
首先cd
進去剛剛新增好的專案
用vim或是你慣用的編輯器把config/dev.exs
這個檔案打開
滑到最下面資料庫設定的部分:
# Configure your database
config :hello, Hello.Repo,
adapter: Ecto.Adapters.Postgres,
username: "",
password: "",
database: "hello_dev",
hostname: "localhost",
pool_size: 10
如果你是使用預設的PostgreSQL,就會看到跟上面一模一樣的預設
把你本地環境的username與password複製貼上然後存檔
接著就可以執行
$ mix ecto.create
用rails理解就是:
$ rake db:create
ecto是Phoenix使用的ORM,後面會介紹到
資料庫好了以後,就可以開啟伺服器了
$ mix phx.server
打開瀏覽器輸入 http://localhost:4000
如果一切順利,你會看到Phoenix的歡迎畫面
control + c
可以離開
參考資料:
https://www.gitbook.com/book/mydearxym/phoenix-doc-in-chinese
https://github.com/chenxsan/PhoenixFramework/blob/master/00-prepare.md