Caution: You are browsing the legacy 1.x part of this website.
This version of symfony is not maintained anymore. If some of your projects still use this version, consider upgrading.

Master Symfony fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
training.sensiolabs.com

Discover SensioLabs' Professional Business Solutions

Peruse our complete Symfony & PHP solutions catalog for your web development needs.
sensiolabs.com
Blackfire Profiler Fire up your PHP Apps Performance

PHP Project Quality Done Right
Jobeet

Einführung

Das symfony Framework ist seit mehr als drei Jahren ein Open-Source-Projekt und wurde eines der beliebtesten PHP Frameworks dank seiner großartigen Merkmale and der großartigen Dokumentation. Und diese große Tradition begann früh.

Im Dezember 2005, kurz nach der ersten offiziellen Veröffentlichung von symfony, veröffentlichten wir das "Askeet Tutorial", ein 24-teiliges Tutorial, das Tag für Tag zwischen dem 1. Dezember und Weihnachten veröffentlicht wurde.

Dieses Tutorial hat sich als ein Mittel von unschätzbarem Wert herausgestellt, um das Framework Neulingen zugänglich zu machen. Viele Entwickler haben dank Askeet symfony gelernt, und viele Firmen nutzen Askeet immer noch als ihr wichtigstes Schulungsmaterial.

Wir feiern jetzt die Veröffentlichung von symfony 1.2 während das Askeet Tutorial in die Jahre gekommen ist. Daher ist es Zeit für ein weiteres, frisches Tutorial.

Kommen Sie zu Jobeet, dem Adventskalender-Tutorial 2008!

Die Herausvorderung

Es ist richtig, wir werden es wieder tun. Jeden Tag, Wochenenden eingeschlossen, wird ein neues Tutorial veröffentlicht. Jedes Tutorial ist für etwa eine Stunde vorgesehen und es wird die Gelegenheit sein, symfony durch das Programmieren einer echten Website zu lernen, vom Anfang bis zum Ende.

Eine Stunde mal vierundzwanzig entspricht einem Tag, und das ist exakt das, was wir denken, was ein Entwickler benötigt, um die Grundlagen von symfony zu lernen. Jeden Tag werden neue Merkmale der Anwendung hinzugefügt und wir werden diese Entwicklung nutzen, um Sie in neue symfony-Funktionalitäten einzuführen, sowie in gute Grundsätze der symfony Webentwicklung.

Bei Askeet war der 21. Tag der "sei-ein-symfony-Guru-für-einen-Tag". Wir hatten nichts geplant und die Community sollte ein Merkmal vorschlagen, das zu Askeet hinzugefügt werden sollte. Es war ein großer Erfolg und die Community entschied, dass wir eine Suchmaschine für die Anwendung benötigten. Und wir taten es. Das Tutorial des 21. Tages wurde auch eines der beliebtesten des Askeet Tutorials.

Für Jobeet werden wir am 21. den Winter mit einem "Design Tag" feiern. Nach dem 4. Tag werden Sie alle notwendigen HTML und CSS Informationen haben, um mit dem Designen der öffentlichen Jobeet Website zu beginnen. Wenn Sie also mit einem Designer arbeiten, oder wenn Ihre Firma eine Designabteilung hat, werden Sie in der Lage sein, ein Design beitragen zu können. Am 21. werden wir eine Abstimmung organisieren und die Community wird das Standarddesign auswählen müssen, das mit Jobeet mitgeliefert werden wird. Sie erhalten natürlich Anerkennung und den ganzen damit verbundenen Ruhm!

Dieses Tutorial ist anders

Erinnern Sie sich an die frühen Tage von PHP4. Ah, la Belle Epoque! PHP war eine der ersten Sprachen, die dem Web gewidmet war und eine der am einfachsten zu lernenden.

Doch da sich Webtechnologien mit einem sehr schnellen Tempo weiterentwickeln, müssen Webentwickler mit den neusten "best practices" und Werkzeugen Schritt halten.
Die beste Möglichkeit zu lernen ist natürlich, indem man Blogs, Tutorials und Bücher liest. Wir haben davon eine Menge gelesen, ob sie für PHP, Python, Java, Ruby, oder Perl geschrieben wurden, und viele von ihnen entsprechen den Anforderungen nicht, wenn der Autor damit beginnt, kurze Codeschnippsel als Beispiele zu geben.

Sie sind es wahrscheinlich gewöhnt, Warnungen zu lesen, wie:

"Vergessen Sie bei einer echten Anwendung nicht, Validierung und ordnungsgemäße Fehlerbehandlung hinzuzufügen."

oder

"Sicherheit wird dem Leser als eine Übung überlassen."

oder

"Sie werden natürlich Tests schreiben müssen."

Was? Diese Dinge sind ernstes Business. Sie sind vielleicht die wichtigsten Teile eines jeden Codeabschnittes. Und als Leser werden Sie allein gelassen. Werden diese Dinge nicht mit einbezogen, sind die Beispiele viel weniger nützlich. Man kann sie schlecht als Ausgangspunkt verwenden. Das ist schlimm! Warum? Weil Sicherheit, Validierung, Fehlerbehandlung und Tests, nur um ein paar zu nennen, darauf achten, dass man richtig programmiert.

In diesem Tutorial werden Sie nie solche Aussagen sehen, da wir Tests, Fehlerbehandlung und Validierungs-Code schreiben werden, und seien Sie sicher, dass wir eine sichere Anwendung entwickeln werden. Das ist so, weil es bei symfony um Code geht, es geht aber auch um "best practices" und darum, wie man professionelle Anwendungen für Unternehmen entwickelt. Wir werden uns diesen Luxus leisten können, weil symfony alle Werkzeuge bereitstellt, um diese Aspekte einfach zu programmieren, ohne zu viel Code schreiben zu müssen.

Validierung, Fehlerbehandlung, Sicherheit und Tests sind die wichtigsten Dinge in symfony, daher wird es nicht lange dauern sie zu erklären. Dies ist nur einer von vielen Gründen, warum man ein Framework für Projekte aus dem "richtigen Leben" verwenden sollte.

Der gesamte Code, den Sie in diesem Tutorial lesen werden, ist Code, den Sie für ein reales Projekt verwenden könnten. Wir ermutigen Sie dazu, Codeschnippsel zu kopieren oder ganze Teile zu klauen.

Das Projekt

Die Anwendung, die entworfen wird, könnte noch eine weitere Blog-Engine sein. Aber wir möchten symfony für ein nützliches Projekt verwenden. Ziel ist zu demonstrieren, dass symfony für die Entwicklung professioneller Anwendungen verwendet werden kann, mit Stil und wenig Aufwand.

Wir werden den Inhalt des Projekts für einen weiteren Tag geheim halten, da wir heute bereits viel zu tun haben. Jedenfalls wissen Sie bereits den Namen der Anwendung: Jobeet.

Was gibt es heute?

Da 24 Stunden reichlich Zeit sind, eine Anwendung mit symfony zu entwickeln, schreiben wir heute keinen PHP Code. Selbst ohne eine einzige Codezeile zu schreiben, werden Sie jedoch die Vorteile zu verstehen beginnen, ein Framework, wie symfony, zu verwenden. Einfach durch Aufsetzen eines neuen Projekts.

Das Ziel des Tages ist die Entwicklungsumgebung einzurichten und eine Seite der Anwendung im Webbrowser darzustellen. Das beinhaltet die Installation von symfony, das Erstellen einer Anwendung und die Webserverkonfiguration.

Voraussetzungen

Prüfen Sie zuerst, dass Sie bereits eine funktionierende Webentwicklungsumgebung haben, mit einem Webserver (z.B. Apache), einer Datenbank (MySQL, PostgreSQL, oder SQLite), und PHP 5.2.4 oder neuer.

Da wir die Kommandozeile sehr oft nutzen werden, ist es besser, ein Unix-ähnliches OS zu verwenden, aber wenn Sie ein Windows System verwenden, wird es auch gehen. Sie müssen nur einige Kommandos im cmd Prompt eingeben.

Hinweis Unix Shell Kommandos können sich als nützlich erweisen in einer Windowsumgebung. Wenn Sie Werkzeuge, wie tar, gzip, oder grep unter Windows nutzen möchten, können Sie Cygwin installieren. Die offizielle Dokumentation ist etwas spärlich, eine gute Installationshilfe befindet sich hier. Die Abenteuerlustigen dürfen auch Microsoft's Windows Dienste für Unix versuchen.

Dadurch dass der Schwerpunkt dieses Tutorials auf dem symfony Framework liegt, werden wir davon ausgehen, dass Sie bereits ein fundiertes Wissen über PHP 5 und objektorientiertes Programmieren haben.

Symfony Installation

Erstellen Sie als erstes ein Verzeichnis für die Dateien des Jobeet-Projektes:

$ mkdir -p /home/sfprojects/jobeet
$ cd /home/sfprojects/jobeet

Unter Windows:

c:\> mkdir c:\development\sfprojects\jobeet
c:\> cd c:\development\sfprojects\jobeet

Hinweis: Windowsbenutzern wird geraten, symfony und ihr neues Projekt in einem Pfad auszuführen, der keine Leerzeichen enthält. Vermeiden Sie das Verzeichnis Dokumente und Einstellungen zu verwenden, inklusive irgendwo unter Eigene Dateien.

Erstellen Sie ein Verzeichnis für die symfony Framework Bibliothekdateien:

$ mkdir -p lib/vendor

Um symfony zu installieren, laden Sie das Archivpaket, das Sie auf der symfony Website finden. Da dieses Tutorial für symfony 1.2 geschrieben wurde, laden Sie die neuste Version herunter, die für diese Version erhältlich ist.

Unter dem Abschnitt "Source Download" finden Sie die Archive im .tgz Format oder im .zip Format. Laden Sie das Archiv herunter und legen Sie es in das frisch erstellte Verzeichnis lib/vendor und entpacken Sie es:

$ cd lib/vendor
$ tar zxpf symfony-1.2-latest.tgz
$ mv symfony-1.2.0 symfony

Unter Windows kann das Entpacken der zip-Datei mit dem Explorer erledigt werden. Nachdem Sie das Verzeichnis in symfony umbenannt haben, sollte es ein Verzeichnis mit dem Namen c:\development\sfprojects\jobeet\lib\vendor\symfony geben.

Prüfen Sie, ob symfony korrekt installiert ist, indem Sie die Kommandozeile zur Anzeige der Version verwenden (beachten Sie das großgeschriebene V):

$ cd ../..
$ php lib/vendor/symfony/data/bin/symfony -V

Unter Windows:

c:\> cd ..\..
c:\> php lib\vendor\symfony\data\bin\symfony -V

Wenn Sie neugierig sind, was dieses Kommandozeilenwerkzeug für Sie tun kann, tippen Sie symfony, um die verfügbaren Optionen und Tasks aufzulisten:

$ php lib/vendor/symfony/data/bin/symfony

Unter Windows:

c:\> php lib\vendor\symfony\data\bin\symfony

Das symfony Kommando ist der "beste Freund" des Entwicklers. Es stellt eine Reihe Werkzeuge bereit, die Ihre Produktivität für alltägliche Dinge verbessern, wie den Cache zu löschen, Code zu generieren und vieles mehr.

Projekt Setup

In symfony werden Anwendungen (engl. applications), die das gleiche Datenmodell teilen, wieder zu Projekten (engl. projects) gruppiert. Wir werden zwei verschiedene Anwendungen für das Jobeet Projekt haben: Ein Anwendung "frontend" und eine Anwendung "backend".

Projekterzeugung

Führen Sie aus dem Verzeichnis jobeet den symfony-Task generate:project aus, um das Projekt zu erzeugen:

$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet

Unter Windows:

c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet

Der Task generate:project generiert die Standardstruktur von Verzeichnissen und Dateien, die für ein symfony-Projekt benötigt werden:

Verzeichnis Beschreibung
apps/ Beinhaltet alle Projektanwendungen
cache/ Die Dateien, die vom Framework zwischengespeichert werden
config/ Die Projektkonfigurationsdateien
lib/ Die Projektbibliotheken und -klassen
log/ Die Logdateien des Frameworks
plugins/ Die installierten Plugins
test/ Die Unit und funktionalen Testdateien
web/ Das Web root-Verzeichnis (siehe unten)

HINWEIS Warum generiert symfony so viele Dateien? Eines der größten Vorteile, ein Framework zu verwenden, ist Ihre Entwicklungen zu standardisieren. Dank der symfony Standardstruktur von Dateien und Verzeichnissen, kann jeder Entwickler mit einigen symfony-Kenntnissenan die Betreuung jedes symfony-Projektes übernehmen. In wenigen Minuten wird er in der Lage sein, in den Code einzutauchen, Fehler zu beheben und neue Merkmale hinzuzufügen.

Der Task generate:project hat ebenfalls eine symfony Abkürzung im Jobeet Projekt-root-Verzeichnis erstellt, um die Anzahl von Zeichen zu reduzieren, die Sie eingeben müssen, um einen Task auszuführen.

Daher werden wir ab sofort diese symfony Abkürzung verwenden, anstelle den vollständig aufgelösten Pfades.

Erzeugen einer Anwendung

Erzeugen Sie jetzt die "frontend" Anwendung, indem Sie den Task generate:app ausführen:

$ php symfony generate:app --escaping-strategy=on --csrf-secret=Unique$ecret frontend

TIPP Da die symfony Datei ausführbar ist, können Unixbenutzer ab sofort alle Vorkommen von 'php symfony' durch './symfony' ersetzen.

Unter Windows können Sie die 'symfony.bat' Datei in Ihr Projekt kopieren und 'symfony' anstelle von 'php symfony' verwenden:

c:\> copy lib\vendor\symfony\data\bin\symfony.bat .

Noch einmal: Der Task generate:app erzeugt die Standardverzeichnisstruktur, die für eine Anwendung benötigt wird im Verzeichnis apps/frontend:

Verzeichnis Beschreibung
config/ Die Konfigurationsdateien für die Anwendung
lib/ Die Anwendungsbibliotheken und -klassen
modules/ Der Anwendungscode (MVC)
templates/ Die globalen Templatedateien

TIPP Alle symfony Kommandos müssen im Projekt-root-Verzeichnis ausgeführt werden, außer wenn explizit etwas anderes gesagt wird.

Als wir den Task generate:app aufgerufen haben, haben wir auch zwei sicherheitsrelevante Optionen angegeben:

  • --escaping-strategy: Aktiviert das "Output Escaping" zur Verhinderung von XSS-Attakten
  • --csrf-secret: Aktiviert Session-Token in Formularen zur Verhinderung von CSRF-Attaken

Indem wir diese zwei optionalen Optionen dem Task übergeben haben, haben wir unsere zukünftige Entwicklung vor den zwei verbreitetsten Sicherheitlücken, die man im Web finden kann, abgesichert. Das ist richtig: Symfony wird für uns automatisch Sicherheitsmaßnahmen ergreifen.

HINWEIS Wenn Sie noch nichts wissen über XSS oder CSRF, nehmen Sie sich die Zeit und lernen Sie mehr über diese Sicherheitslücken.

Der symfony-Pfad

Die symfony-Version, die von Ihrem Projekt verwendet wird, finden Sie heraus, indem Sie eingeben:

$ php symfony -V

Die Option -V zeigt auch den Pfad zum symfony-Installations-Verzeichnis an, der sich wiederum in config/ProjectConfiguration.class.php befindet:

// config/ProjectConfiguration.class.php
require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php';

Für eine bessere Portabilität, ändern Sie den absoluten Pfad zur symfony-Installation auf einen relativen:

// config/ProjectConfiguration.class.php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

Auf diese Art können Sie das Jobeet-Projektverzeichnis irgendwo auf ihren Rechner verschieben oder auf einen anderen Rechner und es wird funktionieren.

Die Umgebungen (engl. environments)

Wenn Sie in das web/ Verzeichnis sehen, werden Sie zwei PHP-Dateien finden: index.php und frontend_dev.php. Diese Dateien werden Front-Controller genannt: Alle Anfragen an die Anwendung werden darüber gemacht. Aber warum haben wir zwei Front-Controller obwohl wir nur eine Anwendung definiert haben?

Beide Dateien verweisen auf die selbe Anwendung, jedoch auf unterschiedliche Umgebungen. Wenn Sie eine Anwendung entwickeln, außer Sie entwickeln direkt auf dem Produktionsserver, benötigen Sie einige Umgebungen (anm.d.Übers.: Im Folgenden wird wo immer es für das Verständnis sinnvoll erschien statt Umgebunbung das englische Wort Environment als Synonym verwendet.):

  • Das development-Environment: Das ist die Umgebung, die von Webentwicklern verwendet wird, um neue Merkmale hinzuzufügen, Fehler zu beheben, ..
  • Das test-Environment: Diese Umgebung wird verwendet, um die Anwendung automatisch zu testen.
  • Das staging-Environment: Diese Umgebung wird vom Kunden verwendet, um die Anwendung zu testen und Fehler zu melden oder fehlende Merkmale.
  • Das production-Environment: Dabei handelt es sich um die Umgebung, mit der ein End-User interagiert.

Was macht ein Environment einzigartig? Im development-Environment muss die Anwendung alle Details einer Anfrage loggen, um das Debugging zu vereinfachen. Es soll Ausnahmen im Browser anzeigen, während das Cache-System deaktiviert sein muss, weil alle Änderungen am Code sofort wirksam sein müssen. Kurz gesagt, das development-Environment muss für den Entwickler optimiert sein:

Eine Ausnahme im dev Environment

Im production-Environment muss die Anwendung jedoch, anstelle von Ausnahmen, angepasste Fehlermeldungen anzeigen und das Cache-System muss natürlich aktiviert sein. Das production-Environment muss also auf Performance und das Nutzererlebnis optimiert sein.

Eine Ausnahme im prod-Environment

Ein symfony-Environment ist ein einzigartiger Satz an Konfigurationseinstellungen und symfony wird mit drei solcher Sätze geliefert: dev, test und prod.

Wenn Sie die Front-Controller-Dateien öffnen, werden Sie sehen, dass der einzige Unterschied die Environment-Einstellung ist:

// web/index.php
<?php
 
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();

HINWEIS Ein neues symfony-Environment zu definieren, ist so einfach, wie einen neuen Front-Controller anzulegen. Später werden wir sehen, wie man die Einstellungen für ein Environment ändert.

Webserver-Einrichtung: Die häßliche Variante

Im vorigen Abschnitt wurde ein Verzeichnis für das Jobeet-Projekt angelegt. Wenn Sie es irgendwo unter dem Web-root-Verzeichnis Ihres Webservers angelegt haben, können Sie bereits auf das Projekt im Webbrowser zugreifen.

Of course, as there is no configuration, if it is very fast to set up, but try to access the config/databases.yml file in your browser to understand the bad consequences of such a laziness attitude.

Verwenden Sie niemals dieses Setup auf einem Produktionsserver und lesen Sie den nächsten Abschnitt, um Ihren Webserver richtig zu konfigurieren.

Webserver-Einrichtung: Die sichere Variante

Ein guter Webgrundsatz ist, in das web-root-Verzeichnis nur die Dateien abzulegen, auf die ein Webbrowser zugreifen muss, wie Stylesheets, Javascripts oder Bilder. Wir empfehlen diese Dataien standardmäßig im Unterverzeichnis web eines symfony-Projektes zu speichern.

Wenn Sie in dieses Verzeichnis schauen, werden Sie dort einige Unterverzeichnisse für Webdateien und die beiden Front-Controller finden. Die Front-Controller sind die einzigen PHP-Dateien, die im web-root-Verzeichnis sein müssen. Alle anderen PHP-Dateien können vor dem Browser verborgen werden, was aus Sicherheitsgründen eine gute Idee ist.

Webserver-Konfiguration

Nun ist es an der Zeit, Ihre Apachekonfiguration zu ändern, damit das neue Projekt für die Welt zugänglich ist.

Suchen und öffnen Sie die httpd.conf Konfigurationsdatei und fügen Sie die folgende Konfiguration am Ende hinzu:

# Stellen Sie sicher, dass Sie diese Zeile nur einmal in der Konfiguration haben
NameVirtualHost 127.0.0.1:8080

# Das ist die Konfiguration für Jobeet
Listen 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
  DocumentRoot "/home/sfprojects/jobeet/web"
  DirectoryIndex index.php
  <Directory "/home/sfprojects/jobeet/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
  <Directory "/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

HINWEIS: Der /sf Alias ermöglicht Ihnen Zugriff auf Bilder und Javascriptdateien, die benötigt werden, um symfony-Standardseiten und die Debug-Toolbar korrekt darzustellen.

Unter Windows müssen Sie die Alias Zeile ungefähr so ersetzen:

Alias /sf "c:\development\symfony\data\web\sf"

/home/sfprojects/jobeet/web sollte ersetzt werden durch:

c:\development\sfprojects\jobeet\web

Diese Konfiguration sorgt dafür, dass Apache am Port 8080 Ihres Rechners hört, wodurch die Jobeet-Website unter der folgenden URL erreichbar sein wird:

http://localhost:8080/

Sie können 8080 in jede andere Nummer ändern, aber bevorzugen Sie Nummern größer als 1024, da sie keine Administrationsrechte erfordern.

sidebar

Konfigurieren Sie einen eigenen Domainnamen für Jobeet

Wenn Sie Administrator auf Ihrem Rechner sind, ist es besser, einen virtuellen Host einzurichten, statt jedes Mal einen neuen Port hinzuzufügen, wenn Sie ein neues Projekt beginnen. Statt einen Port und eine Listen Anweisung hinzuzufügen, wählen Sie einen Domainnamen und ergänzen Sie eine ServerName Anweisung:

# Das ist die Konfiguration für Jobeet
<VirtualHost 127.0.0.1:80>
  ServerName jobeet.localhost
  <!-- die gleiche Konfiguration wie zuvor -->
</VirtualHost>

Der Domainname jobeet.localhost muss lokal eingerichtet sein. Wenn Sie ein Linux-System verwenden muss dies in der Datei /etc/hosts getan werden. Wenn Sie Windows XP verwenden, befindet sich diese Datei im Verzeichnis C:\WINDOWS\system32\drivers\etc\.

Fügen Sie die folgende Zeile ein:

127.0.0.1         jobeet.localhost

Testen Sie die neue Konfiguration

Starten Sie Apache neu und prüfen Sie, ob Sie nun Zugriff auf die neue Anwendung haben, indem Sie einen Browser öffnen und http://localhost:8080/index.php/ oder http://jobeet.localhost/index.php/ eintippen, abhängig von der Apachekonfiguration, die Sie im vorhergehenden Abschnitt gewählt haben.

Gratulation

Hinweis: Wenn Sie das Apachemodul mod_rewrite installiert haben, können Sie den Teil /index.php/ aus allen URLs entfernen.

Sie sollten auch versuchen, auf die Anwendung im development-Environment zuzugreifen. Geben Sie die folgende URL ein:

http://jobeet.localhost/frontend_dev.php/

Die Web-Debug-Toolbar sollte an der rechten oberen Ecke erscheinen mit kleinen Ivons wodurch die Richtigkeit Ihrer sf/ Alias-Konfiguration erwiesen ist.

Web-Debug-Toolbar

Hinweis Die Einrichtung ist etwas anders wenn Sie symfony auf einem IIS Server in einer Windowsumgebung laufen lassen möchten. Sie finden heraus, wie man es konfiguriert im entsprechenden Tutorial.

Subversion

Wenn man eine Webanwendung entwickelt, ist ein guter Grundsatz, eine Source-Code-Versionsverwaltung zu verwenden. Dies ermöglicht es:

  • mit Vertrauen zu arbeiten
  • zu einer vorhergehenden Version zurückzuwechseln, wenn eine Änderung etwas kaputt macht
  • mehr als einer Person zu erlauben, effizient an dem Projekt zu arbeiten
  • Zugriff auf alle fortlaufenden Versionen der Anwendung zu haben

In diesem Abschnitt werden wir beschreiben, wie man Subversion mit symfony verwendet. Wenn Sie ein anderes Source-Code-Versionierungswerkzeug verwenden, sollte es ziemlich einfach sein, das was wir für Subversion beschreiben dafür anzupassen.

Wir gehen davon aus, dass Sie bereits Zugriff auf einen Subversion-Server haben.

TIPP Wenn Sie keinen Subversion-Server zur Verfügung haben, können Sie kostenlos einen auf Google Code erstellen oder tippen Sie einfach "free subversion repository" in Google, um noch viel mehr Möglichkeiten zu haben.

Erzeugen Sie als erstes ein neues Repositpory für das Projekt jobeet:

$ svnadmin create http://svn.example.com/jobeet
$ svn mkdir -m "created default directory structure" http://svn.example.com/jobeet/trunk http://svn.example.com/jobeet/tags http://svn.example.com/jobeet/branches

Entfernen Sie dann die Inhalte der Verzeichnisse cache/ und log/, da wir sie nicht im Repository haben möchten.

$ cd /home/sfprojects/jobeet
$ rm -rf cache/*
$ rm -rf log/*

Stellen Sie nun sicher, dass Sie ausreichende Schreibrechte für die cache- und log-Verzeichnisse haben, sodass Ihr Webserver darin schreiben kann:

$ chmod 777 cache
$ chmod 777 log

Machen Sie als nächstes den ersten Import:

$ svn import -m "made the initial import" . http://svn.example.com/jobeet/trunk

Da wir nie Dateien einchecken möchten, die sich in den Verzeichnissen cache/ und /log befinden, müssen Sie eine "Ignorierliste" angeben:

$ svn propedit svn:ignore cache

Der Standardeditor, der für SVN konfiguriert wurde sollte starten. Subversion soll den gesamten Inhalt des Verzeichnisses ignorieren:

*

Speichern Sie und beenden Sie. Fertig.

Wiederholen Sie die Prozedur für das Verzeichnis log/:

$ svn propedit svn:ignore log

Und geben Sie ein:

*

Zum Schluss checken Sie diese Änderungen in das Repository ein:

$ svn commit -m "added cache/ and log/ content in the ignore list"

Tipp Windowsnutzer können den großartigen TortoiseSVN Client verwenden, um ihr Subversion-Repository zu verwalten.

Hinweis Das Jobeet SVN-Repository wird Tag für Tag öffentlich gemacht werden.

D.h. obwohl das gesamte Repository noch nicht offentlich ist (http://svn.jobeet.org/), wurde der Code von heute bereits eingescheckt und "getagged".

Sie können release_day_01 auschecken:

  $ svn co http://svn.jobeet.org/tags/release_day_01/ jobeet/

Wir sehen uns morgen

Nun, die Zeit ist rum für heute! Obwohl wir noch nicht begonnen haben, über symfony zu sprechen, haben wir bereits eine solide Entwicklungsumgebung eingerichtet, wir haben über Grundsätze guter Webentwicklung gesprochen, und wir sind bereit mit der Programmierung zu beginnen.

Morgen werden wir enthüllen, was die Anwendung tun wird und damit beginnen, in symfony einzusteigen. Vergessen Sie In der Zwischenzeit nicht den
symfony Blog Feed zu abbonieren, wenn Sie auf dem Laufenden mit den neusten Jobeet-News bleiben möchten.

Stellen Sie sicher, dass Sie morgen wieder da sind!


In the news

The Symfony Certification by SensioLabs

Symfony 3 Certification now available in 4,000 centers around the world!

Get certified

Upcoming training sessions