A l'instar de RoR, Symfony est basé sur le motif de conception MVC et utilise une couche d'abstraction d'accès aux données et d'implémentation AJAX. Il est développé en PHP5 par une équipe française, cocorico !

Voyons ensemble comment installer la bête sur une Ubuntu Dapper Drake toute fraîche.

Installation de Symfony

Le meilleur moyen d'installer Symfony mais surtout de le maintenir à jour est d'utiliser le canal PEAR [1] propre au projet. Mais avant tout, vérifions que nous disposons d'un environnement de développement ad-hoc :

$ sudo apt-get install php5 php5-cli php5-mysql php-pear

Le gestionnaire de paquets apt se chargera d'installer les dépendances nécessaires, notamment apache2.

L'installation du canal Symfony nécessite que nous octroyions 16Mo de mémoire vive à PHP. On édite donc le fichier /etc/php5/cli/php.ini et on affecte la nouvelle valeur :

memory_limit = 16M

Bien. Maintenant, installons Symfony et Phing [2] via PEAR :

$ sudo pear upgrade PEAR && sudo pear channel-discover pear.symfony-project.com
$ sudo pear install symfony/symfony
$ sudo pear install --alldeps http://phing.info/pear/phing-current.tgz

OK, ceci fait, on crée un nouveau projet Symfony, que nous baptiserons sobrement monprojet, disposant d'une application monapplication et que nous stockerons sous le docroot /var/www/monprojet :

$ sudo -s
# mkdir /var/www/monprojet
# cd /var/www/monprojet
# symfony init-project monprojet
# symfony init-app monapplication

Voila, notre arborescence Symfony vient d'être créée, on peut commencer à développer ! Non ? Mince, on a oublié de configurer Apache2 ;)

Configuration d'Apache 2

Tout d'abord, activez mod_rewrite :

$ sudo a2enmod rewrite

Ensuite, nous allons créer rapidement un vhost apache, qui pointera benoitement vers dev.monprojet.com (redirigé vers notre hôte local.) Pour cela, éditez votre fichier /etc/hosts et sur la ligne comprenant l'adresse IP 127.0.0.1, ajoutez dev.monprojet.com :

127.0.0.1    localhost localhost.localdomain mamachine dev.monprojet.com

On crée maintenant l'hôte virtuel Apache /etc/apache2/sites-available/dev.monprojet.com dont voici le contenu :

<Directory "/usr/share/php/data/symfony/web/sf">
    AllowOverride All
    Allow from All
</Directory>

<VirtualHost *>
    ServerName dev.monprojet.com
    DocumentRoot "/var/www/monprojet/web"
    DirectoryIndex index.php
    Alias /sf /usr/share/php/data/symfony/web/sf
    
    <Directory "/var/www/monprojet/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

On active l'hôte virtuel nouvellement créé :

$ sudo a2ensite dev.monprojet.com

... et on relance apache :

$ sudo apache2ctl restart

Une dernière petite chose, il faut desactiver les magic_quotes de PHP, dans le fichier /etc/php5/apache2/php.ini :

magic_quotes_gpc = Off

Lancez votre navigateur sur http://dev.monprojet.com, vous devriez obtenir un message du genre :

If you see this page, it means that the creation of your symfony project on this system was successful.

Plus d'informations

Edit du 25 juin 06: Nouvelle version 0.6.3

La version 0.6.3 est sortie. Pour mettre à jour :

$ sudo pear upgrade symfony/symfony

Edit du 26 juin 06 :

Mon camarade de jeu Xavier Lacot vient de publier sur son blog un excellent tutorial dédié à Symfony.

Notes

[1] PEAR propose un système de distribution d'application tierce très pratique, les canaux. Symfony dispose de son propre canal PEAR, mais n'utilise aucune librairie PEAR. Vous avez le droit d'être embrouillés.

[2] Phing est une dépendance de Symfony, qu'il faut installer indépendamment. Haha, elle est bonne, hein?