Multiple Symfony Installationen
Da die Installation mit Hilfe von PEAR nur eine einzige Version von Symfony zulässt, wählen wir den Weg über das svn-repository (natürlich könnte man an dieser Stelle auch die tar.gz Archive von der Seite nehmen).
Wir legen also einen Ordner symfony unter /usr/share/php an und checken die einzelnen Versionen von Symfony aus. Für meine Projekte benötige ich 1.2, 1.3 und 1.4.
1 2 3 4 5 | cd /usr/share/php mkdir symfony svn co http://svn.symfony-project.com/branches/1.2/ symfony12 svn co http://svn.symfony-project.com/branches/1.3/ symfony13 svn co http://svn.symfony-project.com/branches/1.4/ symfony14 |
Jetzt könnten wir mit
1 | ln -s /usr/bin/symfony /usr/share/php/symfony/symfony14/data/bin/symfony |
fest auf die neuste Version von Symfony linken. Allerdings ist das nicht die beste Variante, da man eventuell in einem Symfony-Projekt einer anderen Version arbeitet – was uns zu der Umständlichkeit von ./symfony führt. Für mich persönlich ist das nicht akzeptabel, weil ich das einfach immer falsch mache.
Bei dem Anlegen eines Symfony-Projekts wird ein kleines php-Script angelegt, das die in config/ProjectConfiguration.class.php hinterlegte Symfony-Version nutzt. Also wird ein kleines Script benötigt, das diese Gegebenheit ausnutzt. Folgendes Script kommt also in /usr/bin/symfony:
1 2 | #!/usr/bin/env php
|
Befindet man sich in einem Symfony-Projekt-Ordner benutzt das Script das im Ordner hinterlegte symfony, andernfalls eine Fallback-Variante (in diesem Fall Symfony in Version 1.4).
Somit haben wir den vollen Komfort erlangt – falls es noch schöner geht, hinterlasst doch einen Kommentar
Falls man aber explizit eine Symfony-Version benötigt (zum Beispiel beim Anlegen eines neuen Projekts, die nicht der Standard-Version – also der Fallback-Version unseres Scripts – entspricht), sind folgende Symlinks noch nützlich:
1 2 3 | ln -s /usr/bin/symfony12 /usr/share/php/symfony/symfony12/data/bin/symfony ln -s /usr/bin/symfony13 /usr/share/php/symfony/symfony13/data/bin/symfony ln -s /usr/bin/symfony14 /usr/share/php/symfony/symfony14/data/bin/symfony |