Symfony Speedrun
Symfony hat den Ruf, komplex zu sein. Das stimmt – unter der Haube. Aber für dich als Entwickler ist es dank der Symfony CLI und Docker eines der schnellsten Werkzeuge der Welt. Wir bauen heute zusammen eine vollständige CRUD-Anwendung (Create, Read, Update, Delete) – sicher isoliert in einem Container.
Die Infrastruktur (Docker Compose)
Bevor wir PHP-Code schreiben, bereiten wir unsere Umgebung vor. Wir nutzen ein vorgefertigtes PHP-Image mit Caddy als Webserver.
meine-erste-symfony-app/docker-compose.yaml:
version: '3'
services:
php:
image: dunglas/frankenphp:latest-alpine
ports:
- "8000:8000"
volumes:
- .:/app
environment:
- SERVER_NAME=:8000
working_dir: /app
Starte den Container und wechsle hinein:
docker compose up -d
docker compose exec php sh
Schritt 1: Das Projekt initialisieren
Innerhalb des Containers (sh) installieren wir Symfony:
# Wir erstellen eine Web-Applikation
symfony new my_project --web
cd my_project
Schritt 2: Die Datenbank-Magie (Entities erstellen)
Stellen wir uns vor, wir wollen "Produkte" und deren "Kategorien" verwalten. Wir nutzen den Maker, um Code für uns zu schreiben:
# 1. Die Kategorie erstellen
php bin/console make:entity Kategorie
Folge den Anweisungen: Füge ein 'titel' (string) Feld hinzu.
# 2. Das Produkt erstellen
php bin/console make:entity Produkt
Füge ein 'name' (string) und 'preis' (float) Feld hinzu.
⚠️ 📸 SCREENSHOT ANFRAGE: Hier einen Screenshot vom Terminal einfügen, der die interaktive Erstellung der Entity mit
make:entityim Symfony-Maker zeigt.
Schritt 3: Die CRUD-Interfaces generieren
Das ist der Moment, in dem du Zeit sparst. Symfony generiert alle Controller, Formulare und Views (Templates) für beide Bereiche:
# CRUD für Kategorien
php bin/console make:crud Kategorie
# CRUD für Produkte
php bin/console make:crud Produkt
Schritt 4: Die Verknüpfung (Relation)
Jetzt verbinden wir beide Welten. Ein Produkt soll zu einer Kategorie gehören:
php bin/console make:entity Produkt
*Anleitungen: Füge ein neues Feld 'kategorie' hinzu und wähle den Typ 'relation'. Wähle 'ManyToOne' (viele Produkte gehören zu einer Kategorie). Ziele auf die Entity 'Kategorie'.*
Schritt 5: Die Anwendung starten
Starte den integrierten Symfony Webserver:
symfony server:start -d
Öffne jetzt deinen Browser:
- Kategorien verwalten: http://localhost:8000/kategorie
- Produkte verwalten: http://localhost:8000/produkt
Klicke auf "Create new product" – du hast nun ein fertiges Formular, das Daten validiert und in die Datenbank schreibt!
⚠️ 📸 SCREENSHOT ANFRAGE: Hier einen Screenshot vom Browser-Fenster einfügen, der die automatisch generierte Produkt-Liste (Index) deiner neuen Symfony-App zeigt.
Warum das so genial ist
Normalerweise müsstest du Stunden damit verbringen, HTML-Formulare zu bauen, Datenbank-Abfragen zu schreiben und Validierungen (z.B. "Preis darf nicht negativ sein") zu implementieren. Symfony nimmt dir diese repetitive Arbeit ab, damit du dich auf die echte Logik deiner App konzentrieren kannst.
Fazit
Herzlichen Glückwunsch! Du hast gerade den gesamten Workflow einer modernen Web-Applikation gesehen. Symfony ist wie ein Schweizer Taschenmesser: Es liefert dir für jedes Problem das richtige Werkzeug fix und fertig mit. Das ist Effizienz auf Profi-Niveau!
Login