Block-5-Zusammenfassung: Beziehungen & komplexe Resources
Block-5-Zusammenfassung: Beziehungen & komplexe Resources
~16 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Block 5 ist ABGESCHLOSSEN. Aus zwei ISOLIERTEN Entities ist ein VOLLSTÄNDIGES, verknüpftes Domänenmodell geworden – GENAU der Kern-Datenbestand des Aufgaben-Managers.
Was Block 5 behandelt hat
- Kapitel 37: die
Task-Entity mitManyToOnezuProject. - Kapitel 38: die inverse
OneToMany-Seite aufProject. - Kapitel 39: verschachtelte Collections über
uriVariables/Link. - Kapitel 40: IRI vs. eingebettete Objekte, gezielt gesteuert über Gruppen.
- Kapitel 41: Fehlerfälle beim Verknüpfen, Erstellen über den verschachtelten Endpunkt.
- Kapitel 42:
ManyToManyzwischenTaskundTag. - Kapitel 43: Filtern nach Beziehungen, inklusive
tags[]für mehrere Werte. - Kapitel 44:
cascade/orphanRemovalfür sauberes Löschen. - Kapitel 45: zirkuläre Referenzen bewusst vermeiden.
Projektstand am Ende von Block 5
api/src/ – Stand nach Kapitel 45
api/
└── src/
├── Entity/
│ ├── Project.php ← OneToMany tasks (cascade, orphanRemoval)
│ ├── Task.php ← ManyToOne project, ManyToMany tags
│ └── Tag.php ← ManyToMany tasks (inverse, schreibgeschützt)
├── Filter/
│ └── MultiFieldSearchFilter.php
├── Dto/
│ └── ProjectSummary.php
├── Validator/
│ ├── UniqueProjectName.php
│ └── UniqueProjectNameValidator.php
└── DataFixtures/
└── AppFixtures.php ← Projekte, Tags, Tasks mit BeziehungenSelbst anwenden: Status mit Task verknüpfen
Falls die Status-Übung aus Kapitel 18/28 umgesetzt wurde: ergänzen Sie eine ManyToOne-Beziehung von Task zu Status (analog zu project aus Kapitel 37), GENAU nach demselben Muster.
Achtung: GENAU wie bei den vorherigen Übungen: NICHT vorausgesetzt für spätere Kapitel – Block 6 baut UNABHÄNGIG davon auf dem bisherigen Stand von Project/Task/Tag auf.
Was in Block 6 kommt
Bisher ist die GESAMTE API ÖFFENTLICH – JEDER kann JEDES Projekt lesen, bearbeiten und löschen. Block 6 (Kapitel 47-56) führt eine User-Entity, JWT-Authentifizierung und Voter-basierte Zugriffskontrolle ein – GENAU das Security-Kapitel der Symfony-Schulung (Kapitel 34-43), jetzt angewendet auf API Platform.
Tipp: Ein guter Zeitpunkt, die BISHERIGEN 46 Kapitel EINMAL komplett durchzugehen: doctrine:database:drop --force && doctrine:database:create && doctrine:migrations:migrate --no-interaction && doctrine:fixtures:load --no-interaction baut die Datenbank KOMPLETT NEU auf, ein guter Test, ob ALLE Migrationen in der RICHTIGEN Reihenfolge funktionieren.