スポンサーリンク

2015年6月25日

Phoenix-Frameworkの簡単なまとめ

#目的

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


#参考文献

Railsの基礎知識

人気の投稿