建立專案
使用 Symfony CLI 工具:
symfony new project_name --version=7.4 --webapp
會建立一個包含 Symfony 應用程式的資料夾,你可以用你最愛的編輯器開啟。
啟動開發伺服器
使用 Symfony CLI 工具:
symfony serve --no-tls
啟動開發伺服器,預設使用 8000 連接埠。我們可以透過瀏覽器去應用程式:http://localhost:8000
建立網頁 (控制器)
有兩個方式:
- 使用
MakerBundle和它的php bin/console make:controller指令來建立 一個控制器類別 - 現有的控制器類別中,建立一個新函式,其成為一個控制器,帶有
Route屬性
設定路由 (網頁)
控制器類別中的函式,使用 Route 屬性:
#[Route('/my-url', name: 'my_route_name')]
public function myController(): Response
{}
編輯 Twig 模板
Twig 是一個模板引擎。所有模板都位於 templates/ 資料夾。
我們網頁的樣子是從模板設計的(網站布局)。
templates/base.html.twig 平常會有根模板。
安裝 Bootstrap/Tailwind
- Bootstrap : 可以從控制台使用指令:
php bin/console importmap:require bootstrap
- TailwindCSS : 安裝套件:
composer require symfonycasts/tailwind-bundle
組態資料庫
.env.local 檔案中,定義一個環境變數 DATABASE_URL。
建立資料庫
php bin/console doctrine:database:create
建立表格 (實體)
使用 MakerBundle 的以下指令:
php bin/console make:entity
建立遷移
使用 MakerBundle 的以下指令:
php bin/console make:migration
執行遷移
php bin/console d:m:m
安裝 Fixtures 套件
composer require --dev orm-fixtures
orm-fixtures是 Symfony Flex 別名- 安裝這個套件時,Symfony Flex 配方會自動執行,以預先組態套件:
src/DataFixtures中建立個 PHP 類別
編輯 Fixtures
Fixtures 位於 App\DataFixtures\AppFixtures 類別,所以如果我們遵循 PSR-4 邏輯,我們會在 src/DataFixtures/AppFixtures.php 檔案中找到 Fixtures。
Fixtures 會寫在 load 函式中。
執行 Fixtures
一旦 Fixtures 寫完,我們就可以用以下指令來載入資料:
php bin/console d:f:l
建立兩個實體之間的關係
使用 MakerBundle,並建立一個指向目標實體的屬性。
範例:
- 編輯
Article實體 - 想要建立一個連結到
Category的連結,所以一個文章有一個分類 - 因此我們會建立一個
category屬性 - 這個屬性的類型會是
ManyToOne
關於類型,分開不同類型的關係,圍繞著 To 關鍵字:
- Many / To / One
- One / To / Many
- 等等…
然後,把在編輯的實體名稱,插入到 To 的左邊。例如:
- Many Articles / To / One
最後,把目標實體的名稱插入到 To 的右邊:
- Many Articles / To / One Category