Phoenix est un framework web performant et fiable base sur le moteur BEAM d'Elixir et d'Erlang.
Démarrage rapide (Quickstart)
# Installer le gestionnaire Hex et l'archive Phoenix
mix local.hex
mix archive.install hex phx_new
# Generer une nouvelle application Phoenix avec PostgreSQL
mix phx.new my_app
# Demarrer le serveur de developpement
mix phx.server
Structure des dossiers (Application Directory Layout)
my_app/
├── assets/ # Fichiers statiques (esbuild, Tailwind CSS)
├── config/ # Configuration des environnements (dev, test, prod)
├── lib/
│ ├── my_app/ # Logique metier et schemas Ecto
│ ├── my_app.ex
│ └── my_app_web/ # Couche web (controleurs, vues, routeur)
│ ├── controllers/
│ ├── router.ex
│ └── endpoint.ex
├── priv/
│ └── repo/ # Migrations de base de donnees et fixtures
└── test/ # Suites de tests ExUnit
Contrôleurs et pipelines (Controllers & Pipelines)
Phoenix utilise Plug.Conn comme structure unifiee de transformation 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
Générateurs et contextes (Generators & Contexts)
# Generer un CRUD HTML complet, schema et controleur
mix phx.gen.html Accounts User users name:string email:string:unique
# Generer des ressources d'API JSON
mix phx.gen.json Catalog Product products title:string price:decimal
# Executer les migrations de base de donnees
mix ecto.migrate