Symfony für PHP: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Symfony und wozu wird es benötigt?

\n\n

Symfony ist ein leistungsstarkes, ausgereiftes und eines der beliebtesten Komponenten-Frameworks für die Sprache PHP. Es dient der Erstellung von Webanwendungen, von kleinen Websites bis hin zu komplexen Unternehmenssystemen. Im Gegensatz zu monolithischen Frameworks basiert Symfony auf dem Prinzip der Modularität: Es besteht aus einer Reihe unabhängiger, gut dokumentierter und wiederverwendbarer Komponenten (Bibliotheken). Sie können sowohl das gesamte Framework als auch einzelne Komponenten (z. B. nur die Komponente für HTTP-Anfragen oder Routing) in jedem anderen PHP-Projekt verwenden.

\n\n

Wozu wird es benötigt?

\n
    \n
  • Beschleunigte Entwicklung: Symfony bietet fertige Lösungen für typische Aufgaben: Routing, Datenbankarbeit (über Doctrine ORM), Templating (Twig), Authentifizierung, Formularverarbeitung, Caching und vieles mehr. Sie müssen das Rad nicht neu erfinden.
  • \n
  • Struktur und Wartbarkeit: Das Framework erzwingt eine klare Architektur (MVC – Model-View-Controller), wodurch der Code organisiert, vorhersagbar und für andere Entwickler leicht zu warten ist.
  • \n
  • Zuverlässigkeit und Sicherheit: Symfony verfügt über integrierte Schutzmechanismen gegen häufige Sicherheitslücken (CSRF, XSS, SQL-Injection). Es wird von Größen wie Drupal, phpBB und vielen Unternehmensprojekten verwendet.
  • \n
  • Community und Ökosystem: Eine riesige Community, Tausende fertiger Bundles (Erweiterungen), hervorragende Dokumentation und langfristiger Support (LTS-Versionen).
  • \n
  • Flexibilität: Sie können mit einem Mikro-Framework (Symfony MicroKernel) für APIs beginnen und nach Bedarf weitere Komponenten hinzufügen, wenn das Projekt wächst.
  • \n
\n\n

Installation von Symfony

\n\n

Im Gegensatz zu Python (wo pip verwendet wird) wird in PHP für die Abhängigkeitsverwaltung Composer verwendet. Die Installation von Symfony besteht aus zwei Schritten: Installation des Installers selbst (Symfony CLI) und Erstellung des Projekts.

\n\n

1. Installation von Composer

\n

Wenn Sie Composer noch nicht haben, laden Sie es von der offiziellen Website getcomposer.org herunter und installieren Sie es. Es ist ein globales Werkzeug für PHP.

\n
# Überprüfung der Composer-Installation\ncomposer --version
\n\n

2. Installation der Symfony CLI (empfohlen)

\n

Die Symfony CLI ist ein praktisches Werkzeug zum Erstellen, Verwalten und Ausführen von Projekten.

\n
# Installation auf macOS/Linux (über curl)\ncurl -sS https://get.symfony.com/cli | bash\n\n# Installation auf Windows (über Chocolatey)\nchoco install symfony-cli\n\n# Überprüfung\nsymfony --version
\n\n

3. Erstellen eines neuen Projekts

\n

Verwenden Sie den Befehl symfony new, um ein Anwendungsgerüst zu erstellen.

\n
# Erstellen einer vollständigen Webanwendung (mit Symfony Flex)\nsymfony new my_project --full\n\n# Erstellen einer Mikroanwendung (für APIs)\nsymfony new my_api_project
\n

Wenn Sie die CLI nicht installieren möchten, können Sie Composer direkt verwenden:

\n
composer create-project symfony/skeleton:"7.0.*" my_project\n# Oder für eine vollständige Anwendung:\ncomposer create-project symfony/website-skeleton:"7.0.*" my_project
\n\n

Schnellstart mit einem Codebeispiel

\n\n

Lassen Sie uns eine einfache "Hello, World!"-Seite mit Symfony erstellen.

\n\n

1. Controller erstellen

\n

Ein Controller ist eine PHP-Klasse, die eine Anfrage verarbeitet und eine Antwort zurückgibt. Erstellen Sie die Datei src/Controller/HelloController.php:

\n
<?php\n// src/Controller/HelloController.php\n\nnamespace App\\Controller;\n\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\nclass HelloController extends AbstractController\n{\n    #[Route('/hello/{name}', name: 'hello_page')]\n                    

Empfehlungen