オフトゥン大好き。

惰眠系プログラマの作業ログで( ˘ω˘ ) スヤァ…

Elixir+Phoenixを試してみる

聞いたことあるけど全く触ってなかったElixir言語のウェブフレームワークPhoenixを試してみた。
ElixirはErlangVMの上で動作する言語でRubyのような書きやすいシンタックスを目指した言語らしい。
でもってログでレスポンスタイムをマイクロ秒で表示するくらい爆速らしい。

準備

Elixirインストール

brewで入る。便利。

$ brew install elixir

Phoenixインストール

elixirをインストールするとmixというパッケージマネージャが自動で入る。
これを使ってhexという依存解決ツールphoenixをインストールする。

$ mix local.hex
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

これでインストールはおk

Phoenixプロジェクトを作る

Railsを参考に作られているようなので基本的にはRailsと同じ流れ。
ちなみにデフォだとPostgreSQLを使うのでMySQLを使う場合はオプションで指定する。

$ mix phoenix.new project_name --database mysql

development環境のデータベースを変更する

これは僕の趣味。Railsでもいつもdevelopment環境はsqliteを使っている。
データベースを作り直すときにdbファイルを削除するだけでいいので楽。
変更するにはmix.exsを編集してsqliteのアダプタをインストールした後 config/dev.exs を編集する。

というわけでmix.exsを編集、

  defp deps do
    [{:phoenix, "~> 1.1.4"},
     {:mariaex, ">= 0.0.0"},
     {:sqlite_ecto, "~> 1.1.0", only: :dev}, #これを追加
     {:phoenix_ecto, "~> 2.0"},
     {:phoenix_html, "~> 2.4"},
     {:phoenix_live_reload, "~> 1.0", only: :dev},
     {:gettext, "~> 0.9"},
     {:cowboy, "~> 1.0"}]
  end

からのインストール、

$ mix deps.get

からの config/dev.exs を編集。

# Configure your database
config :project, Project.Repo,
  adapter: Sqlite.Ecto,
  database: "priv/repo/dev.sqlite3"

DBマイグレーション

設定ファイルで出てきているEctoというのがRailsにおけるActiveRecord相当のものらしい。

$ mix ecto.create

とやることでデータベースが作られる。

Phoenixアプリを立ち上げてみる

$ mix phoenix.server

デフォルトでは4000番ポートで待ち受けている。
http://localhost:4000でアクセスするとウェルカムページが表示される。
gyazo.com

というわけで今回はここまで。
次はデータベースを使ってユーザページでも実装してみようかと思う。