Szybka pomoc

Ściągawka z Phoenix Framework

Kompleksowy przewodnik po Phoenix w Elixirze: szybki start, struktura katalogów, routing, potoki Plug.Conn, kontrolery i generatory.

· Opublikowano

Phoenix to wysoce produktywny i niezawodny framework webowy zbudowany na maszynie BEAM dla Elixira i Erlanga.

Szybki start (Quickstart)

# Instalacja menedzera pakietow Hex i instalatora Phoenix
mix local.hex
mix archive.install hex phx_new

# Generowanie nowej aplikacji Phoenix z PostgreSQL
mix phx.new my_app

# Uruchomienie serwera deweloperskiego
mix phx.server

Struktura katalogów (Application Directory Layout)

my_app/
├── assets/          # Zasoby frontendowe (esbuild, Tailwind CSS)
├── config/          # Konfiguracja srodowiskowa (dev, test, prod)
├── lib/
│   ├── my_app/      # Glowna logika biznesowa i schematy Ecto
│   ├── my_app.ex
│   └── my_app_web/  # Warstwa prezentacji webowej (kontrolery, widoki, router)
│       ├── controllers/
│       ├── router.ex
│       └── endpoint.ex
├── priv/
│   └── repo/        # Migracje bazy danych
└── test/            # Zestawy testow ExUnit

Kontrolery i potoki (Controllers & Pipelines)

Phoenix wykorzystuje Plug.Conn jako ujednoliconą strukturę transformacji HTTP:

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

Generatory i konteksty (Generators & Contexts)

# Generowanie pelnego kontekstu HTML CRUD, schematu i kontrolera
mix phx.gen.html Accounts User users name:string email:string:unique

# Generowanie zasobow JSON API
mix phx.gen.json Catalog Product products title:string price:decimal

# Wykonywanie migracji bazy danych
mix ecto.migrate

Powiązane materiały

Powiązane tematy