Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

Composer und Symfony Flex vertieft

Composer und Symfony Flex vertieft

~12 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026

Zum Abschluss von Block 1 verstehen wir, WIE Symfony-Pakete installiert werden – besonders Symfony Flex, das Composer-Plugin, das die "magische" automatische Konfiguration hinter composer require steuert.

composer require im Detail

composer require symfony/mailer

Ein einfacher Composer-Befehl, aber mit Symfony Flex passiert dabei MEHR als bei einer normalen PHP-Bibliothek: Flex erkennt, dass symfony/mailer ein bekanntes Symfony-Paket ist, und wendet automatisch eine dazugehörige "Recipe" an.

Was ist eine Recipe?

Eine Recipe ist eine kleine Anleitung, die im öffentlichen symfony/recipes-Repository gepflegt wird und automatisch:

  • Standard-Konfigurationsdateien unter config/packages/ anlegt.
  • Nötige Umgebungsvariablen zu .env hinzufügt.
  • Bei Bedarf neue Verzeichnisse erstellt.

Nach composer require symfony/mailer finden Sie automatisch eine neue config/packages/mailer.yaml UND eine neue MAILER_DSN-Zeile in .env – OHNE dass Sie das manuell angelegt hätten.

Nachvollziehen, was Flex verändert hat

cat symfony.lock | grep -A2 "symfony/mailer"

symfony.lock (analog zu composer.lock, aber Flex-spezifisch) protokolliert, WELCHE Recipe-Version für JEDES Paket angewendet wurde – nützlich, um später nachzuvollziehen, was bei einer Installation automatisch generiert wurde.

Recipes, die wir im Laufe dieser Schulung nutzen

PaketWas die Recipe automatisch einrichtet
symfony/orm-packRichtet Doctrine ORM ein (Block 4): config/packages/doctrine.yaml, DATABASE_URL in .env.
symfony/security-bundleRichtet Security ein (Block 5): config/packages/security.yaml.
symfony/mailerRichtet den Mailer ein (Kapitel 38): config/packages/mailer.yaml, MAILER_DSN in .env.
symfony/test-packRichtet PHPUnit für Tests ein (Block 7): phpunit.dist.xml, tests/bootstrap.php.

composer.json verstehen

composer.json
{
    "require": {
        "php": ">=8.2",
        "symfony/framework-bundle": "7.2.*",
        "symfony/twig-bundle": "7.2.*"
    },
    "require-dev": {
        "symfony/maker-bundle": "^1.60"
    }
}

7.2.* ist Symfonys empfohlenes Versionsformat: erlaubt PATCH-Updates (7.2.1, 7.2.2, ...) automatisch, verhindert aber ungewollte Sprünge auf 7.3, die Breaking Changes enthalten könnten.

symfony/maker-bundle: Code-Generatoren

Bereits im require-dev-Block enthalten – dieses Bundle stellt bin/console make:...-Befehle bereit, die uns ab Block 2 wiederholt begegnen werden (make:controller, make:entity, make:form, ...):

php bin/console list make
# zeigt alle verfügbaren make:-Befehle

Tipp: --no-dev installiert Pakete OHNE die require-dev-Abhängigkeiten – GENAU das nutzen wir in Kapitel 48 für produktionsreife Deployments, da maker-bundle & Co. dort nicht gebraucht werden und nur unnötig Speicherplatz und potenzielle Angriffsfläche hinzufügen würden.

Damit ist Block 1 (Grundlagen & erstes Projekt) abgeschlossen! Block 2 widmet sich Routing und Controllern – dem Kern, der aus einer HTTP-Anfrage tatsächlich Code werden lässt.