#目的
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 - 目次