使用 mix phx.new
後面接上專案名稱來建立新的 Phoenix 專案
但先別急,我們先輸入 mix phx.new
有什麼選項
mix phx.new
在準備開發環境的時候我們有提到,這一次我們要使用 SQLite 來省去另外開資料庫的麻煩, Phoenix 預設使用 PostgreSQL,但是除非有用到個別資料庫的特殊功能,不然都是可以自由替換的。
加上這次的專案名稱與資料庫設定
mix phx.new gratitude --database sqlite3
中間會問我們要不要把需要的套件下載安裝,按 Y 即可
也可以後來再裝。
Fetch and install dependencies? [Yn]
每次執行這種比較大的指令都要注意執行完成後他有什麼額外的提示,
Phoenix 很貼心的把接下來的步驟也列給我們了,我們一步一步跟著做
cd
進入剛剛建立的 gratitude (或是你的專案名稱)
cd gratitude
在 config/dev.exs
設定好我們的資料庫連線並建立,
由於我們使用 SQLite 可以忽略這步驟,直接建立即可
mix ecto.create
資料庫建立完成後,我們就可以在本地(localhost) 啟動我們的 Phoenix app
mix phx.server
如果想要啟動 Phoenix 並同時使用 iex 的話可以使用
(與上個步驟擇一)
iex -S mix phx.server
這時候我們可以打開瀏覽器,並在網址輸入
localhost:4000
(Phoenix 預設是使用 4000 port)
我們便可以看到預設的首頁
(在終端機按 control + c 兩次可以停止伺服器)
專案剛產生出來的時候,我建議這個時候就可以加入版控了
git init
git add .
git commit -m'init'
裝主要程式的地方
我們可以看到裡面目前有兩組
gratitude
資料夾 與 gratitude.ex
這一組是我們主要的商業邏輯
gratitude_web
資料夾 與 gratitude_web.ex
則是負責網頁畫面邏輯
雖然我們用 phx_new
來一次產生了整個 Phoenix App,
但是其實還是遵照著 elixir mix 專案的方式擺設。
我們接下來會依照這個模式,把商業邏輯與畫面邏輯分開放:
商業或App的邏輯都放在 gratitude 資料夾。
如果是網頁的畫面更新邏輯,則是放在 gratitude_web 這邊。
顧名思義就是各種設定與金鑰的擺放處或加密邏輯,如資料庫的連線設定、API 的加密金鑰、網頁伺服器的設定等。
我們現在還不會動到他。
Javascript 與 CSS 都放在這邊,之後會在加入前端套件時提到。
裡面有三個資料夾
測試檔案放在邊,測試檔案的命名擺放方法是盡量的與 lib
資料夾同步。
如果我有一個檔案在
lib/gratitude/blog/posts.ex
想要寫測試的話,我就會建立一個相對應路徑並在後面加上 _test.exs
:
test/gratitude/blog/posts_test.exs
(要注意的是,大部分的測試都是使用 exs
副檔名,Elixir 腳本都是用這一個 exs
副檔名,這些檔案只有在需要的時候才會 compile 並執行。並不會先 compile 成 beam 檔案,詳細可參考官網說明,不過現在先知道測試使用 exs
就可以了)
這個資料夾不會進版控
所以專案依賴的套件會被下載到這邊,平常不會需要進去更改。
這個資料夾不會進版控
Elixir 程式碼要執行時,要先編譯 (compile) 成 beam 檔案,
這些檔案都放在這邊,平常不會需要進去更改。
目前預設裡面就有一些執行專案的提示,如果是跟團隊一起維護這個專案的話,會把專案相關初次設定、執行指令、部署方式等等的指令記錄在這邊方便查詢使用。
gratitude_dev.db
gratitude_dev.db-shm
gratitude_dev.db-wal
這三個是我們的資料庫檔案本身,不會直接修改,可以忽略他們,需要的話可以複製備份。