Phoenix هو إطار عمل ويب موثوق وفائق الإنتاجية مبني على بيئة تشغيل Elixir و Erlang BEAM.
البداية السريعة والتثبيت (Quickstart)
# تثبيت مدير الحزم Hex وأداة توليد Phoenix
mix local.hex
mix archive.install hex phx_new
# إنشاء تطبيق Phoenix جديد مع دعم PostgreSQL
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/ # طبقة العرض والويب (Controllers و Views و Router)
│ ├── controllers/
│ ├── router.ex
│ └── endpoint.ex
├── priv/
│ └── repo/ # ترحيلات قاعدة البيانات وبيانات البذور
└── test/ # مجموعات اختبارات ExUnit
المتحكمات وأنابيب التدفق (Controllers & Pipelines)
يستخدم Phoenix بنية Plug.Conn ككائن تحويل موحد لطلبات 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
المولدات وسياقات العمل (Generators & Contexts)
# توليد سياق CRUD كامل لقوالب HTML مع المخطط والمتحكم
mix phx.gen.html Accounts User users name:string email:string:unique
# توليد موارد واجهات البرمجة بصيغة JSON
mix phx.gen.json Catalog Product products title:string price:decimal
# تشغيل ترحيلات قاعدة البيانات
mix ecto.migrate