クイックリファレンス

Phoenix フレームワーク チートシート

Elixir向けWebフレームワークPhoenixのクイックリファレンス:クイックスタート、ディレクトリ構成、ルーティング、Plug.Connパイプライン、ジェネレーター。

· 公開日

Phoenix は、ElixirおよびErlang BEAMランタイム上に構築された、高生産性・高信頼性を誇るWebフレームワークです。

クイックスタート(Quickstart)

# HexパッケージマネージャーとPhoenixインストーラーの導入
mix local.hex
mix archive.install hex phx_new

# PostgreSQL対応の新規Phoenixアプリの生成
mix phx.new my_app

# 開発サーバーの起動
mix phx.server

ディレクトリ構成(Application Directory Layout)

my_app/
├── assets/          # フロントエンドアセット(esbuild, Tailwind CSS)
├── config/          # 環境別設定ファイル(dev, test, prod)
├── lib/
│   ├── my_app/      # コアビジネスロジックとEctoスキーマ
│   ├── my_app.ex
│   └── my_app_web/  # Webプレゼンテーション層(コントローラー、ビュー、ルーター)
│       ├── controllers/
│       ├── router.ex
│       └── endpoint.ex
├── priv/
│   └── repo/        # データベースマイグレーションおよびシードデータ
└── test/            # ExUnitテストスイート

コントローラーとパイプライン(Controllers & Pipelines)

PhoenixはHTTPリクエスト変換の基盤構造体として Plug.Conn を使用します:

defmodule MyAppWeb.UserController do
  use MyAppWeb, :controller

  def show(conn, %{"id" => id}) do
    user = MyApp.Accounts.get_user!(id)

    conn
    |> put_status(200)
    |> render("show.html", user: user)
  end

  def api_index(conn, _params) do
    users = MyApp.Accounts.list_users()
    json(conn, %{data: users})
  end
end

ジェネレーターとコンテキスト(Generators & Contexts)

# 完全なHTML CRUDコンテキスト、スキーマ、コントローラーの生成
mix phx.gen.html Accounts User users name:string email:string:unique

# JSON APIリソースの生成
mix phx.gen.json Catalog Product products title:string price:decimal

# データベースマイグレーションの実行
mix ecto.migrate

関連リファレンス

関連テーマ