Einführung
Symfony2 ist im Grunde kein eigenständiges Framework sondern eine gut gemischte Ansammlung an unterschiedlichsten Projekten unter einem gemeinsamen Namen.
Das Framework ist in Bundles aufgeteilt um Framework Aufgaben zu lösen. Vendoren sind PHP Bibliotheken, die direkt oder über Bundles in Symfony2 eingebunden werden.
Um Symfony Projekte sinnvoll ins SVN zu integrieren benutzen wir composer (http://getcomposer.org/).
Weitere gibts im Handbuch zu Symfony2

Initialisierung eines Projekts
Um ein Symfony2 Projekt mit composer zu initialisieren muss zuerst die composer.phar heruntergeladen werden: getcomposer.org.
Danach öffnet man den Projektpfad und initialisiert das Projekt über die Konsole:

cd /path/to/project
php composer.phar create-project symfony/framework-standard-edition path/ 2.1.2

Struktur
Symfony Projekte sind standardmäßig wie folgt aufgebaut:

/app
	/cache
	/config
	/logs
	/Resources
/bin
/src
/vendor
/web
	/bundles

br /> /app/cache und /app/logs werden von Symfony2 mit temporären bzw. log Dateien beschrieben und dürfen nicht commited werden. Genauso ist das /web/bundles Verzeichnis ein Ort für (optimierte) Bild, Javascript und CSS Dateien, die Symfony2 per asseticanlegt.

Das /vendor Verzeichnis wird im folgenden beschrieben. Alle weiteren Verzeichnisse enthalten Projektdateien und müssen ins SVN commited werden.

Composer
Composer ist für PHP das was apt-get für Ubuntu/Debian ist. composer.phar ist ein Downloader, der anhand eines composer.json Bibliotheken herunterlädt (hierbei wird packagistals Resource verwendet) und in das bestehende Projekt einbindet.

Symfony2 macht sich dies zu Nutze und lädt über die composer.json die benötigten Bibliotheken in den /vendor Ordner. Als Bonus wird gleich die psr0-Namespace Standard composer überlassen, so dass die Vendoren nicht noch händisch eingebunden werden müssen.

Symfony2 und SVN
Sinnvolle Versionskontrolle ist mit der schieren Masse an Dateien im Symfony2 Vendoren Ordner schwer umsetz- und vorstellbar. Betrachtet man den /vendor Ordner jedoch nicht als Teil des Projektes, sondern als externe Bibliotheken die nach dem checkout installiert werden müssen, wird die Versionskontrolle deutlich vereinfacht.

Folgende Ordner müssen im svn .ignore eingebunden werden:

/app/cache
/app/logs
/vendor
/web/bundles

br /> Dadurch werden nur fürs Projekt essentielle Dateien gespeichert.

Symfony2 SVN checkout
Ist das Projekt aus dem SVN ausgecheckt worden, müssen die fehlenden Vendoren installiert werden. Dies erfolgt über:

cd /path/to/project
php composer.phar install

Fazit
Mit Hilfe von composer lässt sich jedes Symfony2 Projekt wunderbar im SVN (GIT natürlich auch) verwalten. Wichtig dabei ist die Funktionsweise und interne Struktur von Symfony2 zu kennen und sich so die Vorteile von composer zu nutze zu machen.