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
, odergrep
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 unterEigene 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:
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.
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.
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.
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.
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!
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.