Allgemein Beitragsreihen MySQL PHP Tutorials

Symfony 2.8 Teil 1 – Der Einstieg

In dieser Beitrags Serie möchte ich dir das PHP-Framework Symfony näher bringen. Als Beispiel werden wir eine kleine DVD-Datenbank programmieren.

Was ist Symfony und wofür brauche ich es?

Symfony ist ein Quelloffenes Framework welches auf PHP basiert und dir die Arbeit vereinfachen und beschleunigen soll. Symfony gehört zu den MVC-Frameworks welche ich persönlich sehr begrüße. Bei diesen gibt es eine klare Trennung zwischen Daten (Model), Darstellung (View) und Code (Controller) was die Übersichtlichkeit in größeren Projekten bewahrt. Als kleines Beispiel wird hierbei nicht der PHP Code mit HTML vermischt. Das heißt man muss kein HTML mit echo '<h1>Heading</h1>'; ausgeben.
Symfony besteht aus drei Hauptpaketen welche du in der Beitragsreihe kennenlernen wirst: Symfony selber, Doctrine und TWIG.

Symfony

Symfony sorgt für die Kommunikation zwischen den einzelnen Klassen und bietet viele wertvolle Funktionalitäten.
Neben dem PHP Code welchen du „manuell“ schreiben wirst, gibt es auch eine interaktive Konsole mit welcher regelmäßige Prozesse wie das anlegen von Controllern automatisiert werden.

Doctrine

Doctrine ist für die Datenbank-Schicht zuständig. So werden zum Beispiel die Tabellen und Relationen auf Basis der PHP-Models (Entities) erstellt. Theoretisch benötigst du kein phpMyAdmin um deine Datenbank zu verwalten.

TWIG

TWIG ist die Template-Engine welche von Symfony mit geliefert wird. Diese steuert die Präsentations-Schicht (Darstellung der Seite im Browser).

Herunterladen und installieren

Die Installation an sich ist relativ einfach, jedoch sind einige Dinge zu beachten.

Stelle bitte sicher dass du folgende Software bei dir lauffähig installiert hast:

  • XAMPP
  • git (bitte mit „Windows Explorer integration“ installieren)

Desweiteren empfehle ich dir als IDE die Eclipse PHP Development Tools zu verwenden, da es hierfür entsprechende Plugins für die Code-Completition für Symfony gibt.
Damit du in der Konsole nicht immer der Pfad zum PHP Verzeichnis angegeben musst, kannst du den PHP-Pfad zu den Umgebungsvariablen hinzufügen

Sobald alles installiert ist, kann es auch schon los gehen.

Composer installieren

Composer ist ein Paketmanager für PHP. Dieser dient zum einfachen verwalten von Projektabhängigkeiten.

Navigiere im Windows Explorer in dein htdocs-Verzeichnis im XAMPP-Ordner. Standardmäßig findest du dieses unter C:\xampp\htdocs\.
In diesem Verzeichnis machst du nun an einer freien Bereich einen Rechtsklick und wählst „Git Bash here„.

In der darauf folgenden Konsole installierst du mit dem folgenden Befehl Composer:

php -r "readfile('https://getcomposer.org/installer');" | php

Danach solltest du folgendes Ergebnis erhalten:
Composer installieren

Symfony installieren

Symfony kannst du ganz einfach mit Composer installieren. Dazu führst du in der Konsole folgenden Befehl aus:

php composer.phar create-project symfony/framework-standard-edition dvd-db 2.8.*

dvd-db entspricht hierbei dem Projektnamen und 2.8.* heißt dass die aktuellste Version von Symfony 2.8 installiert werden soll. Version 2.8.0 kam zusammen mit Symfony 3.0.0 heraus.
Da 2.8.0 aber eine LTS-Version ist, arbeiten wir mit dieser Version (abgesehen davon unterscheidet sich 2.8.0 von 3.0.0 nicht).

Während der Installation wirst du einige Dinge gefragt. Wenn du an deiner XAMPP-Installation nichts verändert hast, kannst du fast alle Fragen mit Enter bestätigen.

Für database_name gibst du dvd_db an. Bei secret gibst du eine wilde Kombination aus Zahlen und Buchstaben ein.
Mit einem weiteren Enter wird die Installation abgeschlossen.

Symfony Installation

Das wars, jetzt bist du erstmal fertig mit installieren 🙂

Datenbank anlegen

Nun muss noch die Datenbank erstellt werden. Hierfür verwendest du die am Anfang erwähnte interaktive Konsole.
Im Kommandozeilen Fester gibst du folgende Befehle ein

cd dvd-db/
php app/console doctrine:database:create

Der letzte Befehl sollte dir Created database `dvd_db` for connection named default anzeigen.
Falls nicht, stimmt etwas nicht mit der Datenbank-Verbindung. Sollte dies der Fall sein, kannst du die Verbindungsdaten in der Datei app/config/parameters.yml prüfen und korrigieren. Diese Datei ist für die komplette Konfiguration eines Projektes Projekts zuständig.

Apache Konfigurieren

Damit der Aufruf funktioniert, musst du für Apache einen vhost-Eintrag hinzufügen und deine Windows hosts Datei anpassen.

vhost-Eintrag erstellen

Öffne im Windows Explorer das Verzeichnis deiner XAMPP-Installations. Öffne nun die xampp-control.exe. Hier stoppst du nun Apache, falls dieser bereits läuft. Als nächstes klickst du auf den Button Config und wählst dann <Browse> [Apache] aus.
XAMPP Control Panel

Nun navigierst du zu conf\extra und öffnest die httpd-vhosts.conf mit einem Text-Editor deiner Wahl. Ganz unten fügst du nun folgenden Inhalt hinzu:

<VirtualHost dvd-db.local:80>
 
	ServerName dvd-db.local
	DocumentRoot "C:/xampp/htdocs/dvd-db/web"
	DirectoryIndex index.php
 
	<Directory "C:/xampp/htdocs/dvd-db/web">
		AllowOverride All
		Allow from All
		Options Indexes FollowSymLinks
	</Directory>
 
</VirtualHost>

Nun speicherst du die Datei und startest Apache wieder.

hosts-Datei anpassen

Damit man mit dem Aufruf dvd-db.local nun auch auf dem eigenen Rechner landet, muss noch die hosts-Datei angepasst werden. Öffne hierzu den Editor deiner Wahl als Administrator und öffne nun in diesem die Datei C:\Windows\drivers\etc\hosts.

In dieser Datei fügst du nun ans Ende folgenden Text hinzu:

127.0.0.1	dvd-db.local

Die Datei kannst du nun speichern und Schließen.

Test

Nun da Symfony nun installiert und Apache entsprechend konfiguriert ist, ist es an der Zeit die Installation zu testen. Rufe hierzu http://dvd-db.local/app_dev.php/
Wenn du alles korrekt gemacht hast erscheint nun folgende Seite:
Welcome to Symfony

So, Symfony ist nun installiert und du hast somit die Basis für dein Projekt geschaffen.

Im nächsten Teil geht es um Bundles, Controller und Entities. Zudem werden wir Bootstrap als CSS-Framework einbinden.
Dieser folgt am Dienstag, 15.12.2015.

Zu den weiteren Teilen: Ich versuche pro Woche 3 Beiträge (Dienstag, Donnerstag und Samstag) zu diesem Thema zu veröffentlichen. Also regelmäßig nachschauen lohnt sich.

Wenn dir dieser Beitrag gefallen hat, würde ich mich über einen Daumen hoch oder ein Kommentar freuen.
Falls du Probleme oder Verbesserungsvorschläge hast, kannst du diese gerne in die Kommentare schreiben.

~ Julian

Weiter zu „Teil 2 – Bundles, Controller und Entites“


27x gelesen

Print Friendly, PDF & Email

6 Kommentare

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.