In symfony werden Anwendungen, die auf dasselbe Datenmodell zugreifen, innerhalb von Projekten gruppiert. Bei den meisten Projekten werden Sie zwei verschiedene Anwendungen haben: ein Frontend und ein Backend.
Projekt erstellen
Vom Verzeichnis sfproject/
aus starten Sie den symfony-Task
generate:project
um das eigentliche symfony-Projekt zu erstellen:
$ php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME
Mit Windows:
c:\> php lib\vendor\symfony\data\bin\symfony generate:project PROJECT_NAME
Der generate:project
-Task erstellt die Standard-Struktur aus Verzeichnissen und
Dateien, die ein symfony-Projekt braucht:
Verzeichnis | Beschreibung |
---|---|
apps/ |
Enthält alle Anwendungen des Projekts |
cache/ |
Die Dateien, die vom Framework gecached werden |
config/ |
Die Dateien der Projekt-Konfiguration |
data/ |
Datendateien wie z.B. die Anfangs-Ausstattung |
lib/ |
Die Projekt-Bibliotheken und -Klassen |
log/ |
Die Log-Dateien des Frameworks |
plugins/ |
Die installierten Plugins |
test/ |
Die Dateien der Element-Tests und Funktions-Tests |
web/ |
Das Webroot-Verzeichnis (s. unten) |
note
Warum generiert symfony so viele Dateien? Einer der Hauptvorteile der Verwendung eines voll ausgestatteten Frameworks besteht in der Standardisierung Ihrer Entwicklungen. Dank symfonys Standardstruktur aus Dateien und Verzeichnissen kann jeder Entwickler mit etwas symfony-Kenntnissen die Pflege eines symfony-Projekts übernehmen. Innerhalb von Minuten wird es ihm möglich sein, in den Code einzutauchen, Fehler zu beheben und neue Features hinzuzufügen.
Der generate:project
-Task hat ebenfalls in Ihrem Projekt-Hauptverzeichnis eine
Abkürzung erstellt, damit Sie nicht so viele Zeichen eintippen müssen, um einen
symfony-Task zu starten.
Von jetzt an also können Sie statt des vollständigen Pfades zum symfony-Programm
die symfony
-Abkürzung verwenden.
Installation nachprüfen
Nachdem symfony installiert ist, überprüfen Sie ob alles läuft. Verwenden Sie
dazu die symfony Kommandozeile, um die symfony-Version anzuzeigen (beachten Sie
die Großschreibung von V
):
$ cd ../.. $ php lib/vendor/symfony/data/bin/symfony -V
Mit Windows:
c:\> cd ..\.. c:\> php lib\vendor\symfony\data\bin\symfony -V
Die Option -V
zeigt auch den Pfad zum Installationsverzeichnis von symfony, der
unter config/ProjectConfiguration.class.php
gespeichert ist.
Sollte der Pfad als absoluter Pfad gespeichert sein (was standardmäßig nicht der Fall sein sollte, wenn Sie den obigen Anweisungen gefolgt sind), dann sollten Sie ihn für eine bessere Portabilität ändern, so dass er so aussieht:
// config/ProjectConfiguration.class.php require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
Auf diese Weise können Sie das Projekt-Verzeichnis auf Ihrem Rechner oder auf einen anderen verschieben, und es wird weiterhin funktionieren.
tip
Wenn Sie neugierig sind, was dieses Kommandozeilen-Tool für Sie tun kann, geben
Sie symfony
ein um alle verfügbaren Optionen und Aufgaben aufzulisten:
$ php lib/vendor/symfony/data/bin/symfony
Mit Windows:
c:\> php lib\vendor\symfony\data\bin\symfony
Die symfony Kommandozeile ist der beste Freund des Entwicklers. Sie stellt eine Menge von Hilfen zur Verfügung, die Ihre Produktivität bei den täglichen Aktivtäten steigert, wie z.B. Leeren des Cache, Code-Generierung u.v.m.
Die Datenbank konfigurieren
Das symfony-Framework unterstützt von vorneherein alle Datenbanken, die PDO unterstützen (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). Symfony vefügt über zwei ORM-Tools, die auf PDO aufsetzen: Propel und Doctrine.
Beim Erstellen eines neuen Projekts ist Doctrine standardmäßig aktiviert. Die
Konfiguration der von Doctrine verwendeten Datenbank erfolgt ganz einfach mit
dem Task configure:database
:
$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret
Der configure:database
-Task erhält drei Argumente: die
PDO DSN, den Usernamen und das
Passwort für den Zugang zur Datenbank. Wenn Sie auf Ihrem Entwicklungs-Server
kein Zugangs-Passwort zur Datenbank brauchen, lassen Sie das dritte Argument
einfach weg.
tip
Wenn Sie Propel statt Doctrine einsetzen möchten, dann fügen Sie --orm=Propel
hinzu, wenn Sie das Projekt mit dem Task generate:project
anlegen. Wollen Sie
gar kein ORM verwenden, dann geben Sie --orm=none
ein.
Anwendung erstellen
Nun erstellen Sie die Frontend-Anwendung durch starten des Tasks generate:app
:
$ php symfony generate:app frontend
tip
Da die symfony-Abkürzung eine ausführbare Datei ist, können alle Unix-Anwender
von jetzt an './symfony
' statt 'php symfony
' eingeben.
Bei Windows können Sie die Datei 'symfony.bat
' in Ihr Projekt kopieren und
'symfony
' statt 'php symfony
' verwenden:
c:\> copy lib\vendor\symfony\data\bin\symfony.bat .
Abhängig vom Anwendungsnamen, der als Argument angegeben wurde, erzeugt der
Task generate:app
die für die Anwendung notwendige Standard-Verzeichnisstruktur
innerhalb des Verzeichnisses apps/frontend/
:
Verzeichnis | Beschreibung |
---|---|
config/ |
Die Dateien der Anwendungs-Konfiguration |
lib/ |
Die Bibliotheken und Klassen der Anwendung |
modules/ |
Der Code der Anwendung (MVC) |
templates/ |
Die globalen Template-Dateien |
Verzeichnisstruktur-Rechte
Bevor Sie auf Ihr neu erstelltes Projekt zugreifen, müssen Sie die Schreibrechte
für die Verzeichnisse cache/
und log/
auf die geeignete Stufe setzen, damit
der Webserver darauf schreiben kann:
$ chmod 777 cache/ log/
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.