#目的
Phoenixの基礎知識を簡単にまとめる。#始める前に
この内容やるの忘れてましたね。Phoenixって何?Phoenixのディレクトリ構成はどうなってるの?
といったところを書いておく。(※後で変わる可能性あるかも?)
間違っているところがありましたら、ご指摘下さい。
(私はまだまだ未熟者です・・・)
#目次
1. Phoenixって何?2. ディレクトリ構成
3. サーバの実行
4. まとめ
##1. Phoenixって何?
PhoenixはElixir言語で作成されたWebフレームワークです。また、Ruby on Railsに大きく影響を受けておりRailsライクに利用できます。
ElixirはErlangVMで動く関数型言語でRubyライクに記述できます。
(ErlangVM上で動作するのでErlangのOTPが使えます)
設計哲学
おそらくRailsと同じ
特徴
- RoRライク
- MVCモデル
- ジェネレータ(Ecto?)
- ルーティング
- テンプレート
- チャネル
導入実績
知らん!!
規約
ディレクトリ | ファイル | モジュール名 | useモジュール |
---|---|---|---|
web/controllers/ | xxx_controller.ex | XxxController | use AppName.Web, :controller |
web/models/ | xxx.ex | Xxx | use AppName.Web, :model |
web/views/ | xxx_view.ex | XxxView | use AppName.Web, :view |
web/templates/xxx | yyy.html.eex | ||
web/channels/ | zzz_channel.ex | ZzzChannel | use Phoenix.Channel |
priv/repo/migrations/ | YYYYMMDDhhmiss_create_mmm.exs | ||
test/controllers/ | xxx_controller_test.exs | XxxControllerTest | use AppName.ConnCase |
test/models/ | xxx_test.exs | XxxTest | use AppName.ModelCase |
test/views/ | xxx_view_test.exs | XxxViewTest | use AppName.ConnCase, async: true |
test/channels/ | zzz_channel_test.exs | ZzzChannelTest | |
test/support/ | use ExUnit.CaseTemplate |
xxx = コントローラ名、モデル名
yyy = アクション名
zzz = チャネル名
mmm = マイグレーション名
YYYYMMDDhhmiss = 作成日時
AppName = アプリケーション名
空白 = なし又は不明
マイグレーションする時のテーブル名 = xxxs (モデル名の複数系)
##2. ディレクトリ構成
"mix phoenix.new"で生成すると以下のような構成をしている。説明 | ||
---|---|---|
_build/ | ビルドしたファイルを格納するディレクトリ | |
config/ | アプリケーションの設定ファイルを格納するディレクトリ | |
deps/ | 利用するライブラリを格納しているディレクトリ | |
lib/ | 不明 | |
アプリケーション名/endpoint.ex | 不明 | |
アプリケーション名/repo.ex | 不明 | |
アプリケーション名.ex | 不明 | |
node_modules/ | Nodejsのnpmを利用している詳細は不明 | |
priv/ | 外部公開しないmigration、css、jsなどを格納しているディレクトリ | |
repo/migrations/マイグレーション名.exs | マイグレーションファイルを格納するディレクトリ | |
static/css/app.css | Bootstrapのスタイルが定義されているファイル(多分) | |
static/css/app.css.map | ↑上記のmapファイル | |
static/images/phoenix.png | デフォルトのロゴ | |
static/js/app.js | BootstrapのJavaScriptが定義されているファイル(多分) | |
static/js/app.js.map | ↑上記のmapファイル | |
static/robots.txt | 不明 | |
test/ | テストを実行するファイルを格納するディレクトリ | |
channels/ | チャネルのテストを格納するディレクトリ | |
controllers/ | コントローラのテストを格納するディレクトリ | |
models/ | モデルのテストを格納するディレクトリ | |
support/ | 不明(多分、テストを補助するファイルを格納するディレクトリ) | |
views/ | ビューのテストを格納するディレクトリ | |
test_helper.exs | テストを実行するファイル | |
web/ | アプリケーションを格納するディレクトリ 主要なプログラムはこの配下に格納 |
|
static/ | 静的なファイルを格納するディレクトリ | |
static/css | 公開するスタイルシートを格納するディレクトリ | |
static/js | 公開するJavaScriptを格納するディレクトリ | |
static/vendor | 不明 | |
channels/ | チャネルを格納するディレクトリ | |
controllers/ | コントローラを格納するディレクトリ | |
controllers/page_controller.ex | デフォルトページのコントローラ | |
models/ | モデルを格納するディレクトリ | |
templates/ | テンプレートを格納するディレクトリ | |
templates/layout | レイアウト用テンプレートを格納するディレクトリ | |
templates/layout/application.html.eex | デフォルトのレイアウト用テンプレート | |
templates/page | デフォルトページのテンプレートを格納しているディレクトリ | |
templates/page/index.html.eex | デフォルトページのテンプレート | |
views/ | ビューを格納するディレクトリ | |
views/page_view.ex | デフォルトページのビュー | |
router.ex | ルーティングなどを記述するルータ | |
web.ex | 不明 | |
.gitignore | GitへCommitしないファイル&ディレクトリを記述するファイル | |
mix.exs | プロジェクトの設定を行うためのファイル | |
mix.lock | 利用しているライブラリのバージョンを記述しているファイル | |
package.json | 不明 | |
README.md | readme |
##3. サーバの実行
後は・・・実行の仕方くらいかな?>cd PhoenixApplicationを作成したいディレクトリパス
>mix phoenix.new アプリケーション名
>cd アプリケーション名
>mix phoenix.server
※デフォルトのポート番号:4000
##4. まとめ
こんな感じですかね。これで基本的なところは把握できるかと思います。
不明なところは申し訳ないですが・・・
目次: Rails Tutorial for Phoenix - 目次