Symfony — CLI und bin/console für Symfony-Projekte
Praxis-Guide zu Symfony: CLI für lokalen Server und bin/console für make, Doctrine, Cache, Routing und Debugging deiner Symfony-Anwendungen.
Symfony ist eines der führenden PHP-Frameworks für Webanwendungen und APIs. Im Alltag arbeitest du mit zwei Werkzeugen: Die separate symfony-CLI (das Symfony-Binary) startet den lokalen Entwicklungsserver, legt neue Projekte an und bündelt Tooling rund um Symfony Cloud. Für alles innerhalb deiner Anwendung – Code-Generierung, Datenbank-Migrationen, Cache, Routing und Debugging – nutzt du php bin/console, die Console-Komponente des Frameworks. Dieser Guide bündelt die Kommandos, die du im Projektalltag am häufigsten brauchst.
Allgemein
php bin/console list — Listet alle verfügbaren Kommandos auf.
php bin/console listphp bin/console help <command> — Zeigt die Hilfe zu einem bestimmten Kommando.
php bin/console help make:entityphp bin/console about — Zeigt Informationen über das aktuelle Projekt.
php bin/console aboutsymfony serve — Startet den lokalen Symfony-Webserver.
symfony serve -dsymfony new <name> — Legt ein neues Symfony-Projekt an.
symfony new my-project --webappCode-Generierung (make:)
php bin/console make:entity — Erzeugt oder aktualisiert eine Doctrine-Entity-Klasse.
php bin/console make:entity Productphp bin/console make:controller — Erzeugt eine neue Controller-Klasse.
php bin/console make:controller ProductControllerphp bin/console make:form — Erzeugt eine neue Form-Type-Klasse.
php bin/console make:form ProductTypephp bin/console make:migration — Erzeugt eine Migration auf Basis der Entity-Änderungen.
php bin/console make:migrationphp bin/console make:command — Erzeugt eine neue Console-Command-Klasse.
php bin/console make:command app:send-emailsphp bin/console make:subscriber — Erzeugt einen neuen Event-Subscriber.
php bin/console make:subscriber ExceptionSubscriberphp bin/console make:twig-extension — Erzeugt eine Twig-Extension.
php bin/console make:twig-extension AppExtensionphp bin/console make:voter — Erzeugt einen neuen Security-Voter.
php bin/console make:voter ProductVoterDatenbank & Doctrine
php bin/console doctrine:database:create — Legt die konfigurierte Datenbank an.
php bin/console doctrine:database:createphp bin/console doctrine:migrations:migrate — Führt ausstehende Datenbank-Migrationen aus.
php bin/console doctrine:migrations:migratephp bin/console doctrine:migrations:status — Zeigt den Status der Migrationen.
php bin/console doctrine:migrations:statusphp bin/console doctrine:schema:validate — Prüft die Mapping-Dateien und das Datenbankschema.
php bin/console doctrine:schema:validatephp bin/console doctrine:schema:update --dump-sql — Zeigt das SQL, das zum Aktualisieren des Datenbankschemas nötig ist.
php bin/console doctrine:schema:update --dump-sqlphp bin/console doctrine:fixtures:load — Lädt Daten-Fixtures in die Datenbank.
php bin/console doctrine:fixtures:load --appendphp bin/console dbal:run-sql '<sql>' — Führt rohes SQL direkt aus.
php bin/console dbal:run-sql 'SELECT count(*) FROM product'Cache & Konfiguration
php bin/console cache:clear — Leert den Anwendungs-Cache.
php bin/console cache:clearphp bin/console cache:warmup — Wärmt den Cache vor.
php bin/console cache:warmupphp bin/console cache:pool:clear <pool> — Leert einen bestimmten Cache-Pool.
php bin/console cache:pool:clear cache.appphp bin/console debug:config <bundle> — Zeigt die aufgelöste Konfiguration eines Bundles.
php bin/console debug:config frameworkphp bin/console config:dump-reference <bundle> — Zeigt die vollständige Standard-Konfigurationsreferenz.
php bin/console config:dump-reference securityDebugging & Routen
php bin/console debug:router — Listet alle registrierten Routen auf.
php bin/console debug:routerphp bin/console debug:router <name> — Zeigt Details zu einer bestimmten Route.
php bin/console debug:router app_product_showphp bin/console router:match <path> — Zeigt, welche Route zu einem URL-Pfad passt.
php bin/console router:match /product/42php bin/console debug:container — Listet alle Services im Container auf.
php bin/console debug:container --show-argumentsphp bin/console debug:container <service> — Zeigt Details zu einem bestimmten Service.
php bin/console debug:container App\Service\Mailerphp bin/console debug:event-dispatcher — Listet alle registrierten Event-Listener auf.
php bin/console debug:event-dispatcher kernel.requestphp bin/console debug:twig — Zeigt Twig-Funktionen, -Filter und -Globals.
php bin/console debug:twigMessenger & Security
php bin/console messenger:consume <transport> — Konsumiert Nachrichten aus einem Transport (Queue-Worker).
php bin/console messenger:consume async --limit=10php bin/console messenger:failed:show — Zeigt fehlgeschlagene Nachrichten.
php bin/console messenger:failed:showphp bin/console messenger:failed:retry — Verarbeitet fehlgeschlagene Nachrichten erneut.
php bin/console messenger:failed:retryphp bin/console security:hash-password — Hasht ein Klartext-Passwort.
php bin/console security:hash-passwordphp bin/console secrets:set <name> — Setzt ein Secret im Vault.
php bin/console secrets:set DATABASE_PASSWORD Fazit
Mit der symfony-CLI und bin/console hast du fast alles in der Hand, was ein Symfony-Projekt im Alltag braucht – vom lokalen Server über Code-Generierung bis zu Cache und Routing. Der lokale Server (symfony serve) ist ausschließlich für die Entwicklung gedacht; in Produktion läuft deine App hinter einem echten Webserver wie nginx oder Apache mit PHP-FPM. Vorsicht bei datenverändernden Doctrine-Kommandos: doctrine:migrations:migrate sowie doctrine:database:drop und doctrine:schema:drop können Daten unwiderruflich löschen – lege vorher ein Backup an und setze in Produktion --no-interaction nur bewusst und geprüft ein. cache:clear ist harmlos, sollte in Produktion aber im richtigen Environment laufen. Die Console ist erweiterbar: Mit make:command baust du dir eigene Kommandos im selben Stil.
Weiterführende Links
- Symfony-Dokumentation – offizielle Referenz zu Framework, Console und Komponenten (englisch)
- The Console Component – Details zu
bin/consoleund eigenen Kommandos (englisch) - Symfony Local Web Server – Einrichtung und Nutzung der
symfony-CLI (englisch)