Alors que la beta de Symfony 2.0 reloaded pointe le bout de son nez, voici un court tutorial, que l’on va plutôt nommer un mémo à propos de Symfony. Ce mémo s’adresse principalement aux personnes qui ont déjà pratiquées Symfony et qui souhaitent démarrer un nouveau projet rapidement. En vrai c’est surtout pour nous éviter d’aller nous farcir la doc pour retrouver les commandes !
Pour les personnes qui ne connaissent pas Symfony, il s’agit d’un Framework MVC libre et Open Source, écrit en PHP5. C’est sans doute le framework PHP le plus puissant à l’heure actuelle et le mieux documenté. Si vous vous intéressez de près à Symfony, nous ne pouvons que vous conseiller le tutorial Jobeet. Ce tutorial permet en 24 jours (à raison de 2H par jour), de connaitre les principales fonctionnalités du framework. (vous pouvez bien entendu faire le tutorial en 1 jour si vous êtes un grand malade du développement web :p)
Avant de commencer, assurez-vous que votre serveur est configuré correctement pour accueillir un projet Symfony, il faut notamment mod_rewrite pour Apache et pdo_mysql pour PHP. Vous pouvez télécharger un script qui testera votre configuration à cette adresse : http://sf-to.org/1.4/check.php
Allez, on se lance ! Commencez par récupérer les sources de la version 1.4 sur symfony-project (nous préférerons partir des sources plutôt que de la sandbox) et décompressez l’archive dans votre workspace. Maintenant, on ne lâche plus son terminal et on va créer notre projet. Dans la version 1.4 de Symfony, lorsque l’on crée un projet, celui-ci utilise par défaut l’ORM Doctrine :
cd /home/login/www/mySymfonyProject/ php data/bin/symfony generate:project mysymfonyproject
Je vous rappelle que pour avoir la commande php disponible sous Linux, il faut avoir installé le package php5-cli.
Une fois que notre projet est créé, il faut configurer la base de données que nous souhaitons utiliser, ici, nous configurons une base de données MySQL nommé myDB avec comme login root et comme mot de passe password :
php symfony configure:database "mysql:host=localhost;dbname=myDB" root password
Sous Linux, vous pouvez directement exécuter le script symfony qui s’est copié à la racine de votre projet, pour les utilisateurs de Windows et MacOS, vous devez toujours passer par la commande php.
Une fois que la base de données est configurée, il faut générer une application. Nous appellerons cette application frontend :
php symfony generate:app frontend
Afin d’éviter toute surprise, nous allons passer un petit coup de chmod sur notre projet :
chmod 755 -R ../mySymfonyProject/ chmod 777 cache/ log/
Il faut ensuite créer un VirtualHost, nous ne vous rappelons pas comment mettre en place un VirtualHost, mais voici un fichier de VirtualHost fonctionnel pour un projet Symfony :
<VirtualHost *:80> ServerName mysymfonyproject ServerAdmin admin@mysymfonyproject.com DocumentRoot "/home/login/www/mySymfonyProject/web" <Directory "/home/login/www/mySymfonyProject/web/"> AllowOverride all allow from all </Directory> Alias /sf "/home/login/www/mySymfonyProject/data/web/sf" <Directory "/home/login/www/mySymfonyProject/data/web/sf"> AllowOverride All Allow from All </Directory> </VirtualHost>
Vous pouvez maintenant tester que tout fonctionne à la perfection en vous rendant à l’adresse http://mysymfonyproject/ et vous devriez avoir la page « Symfony project created ». Ou pas, car bien sûr on a oublié d’ajouter la ligne qui va bien dans le fichier hosts, erreur classique. Pour les windoziens ça se passe dans :
\Windows\system32\drivers\etc\hosts
et pour ceux qui ont un vrai OS :
/etc/hosts
La ligne à rajouter au fichier hosts est la suivante :
127.0.0.1 mysymfonyproject
Ce qui indiquera à votre navigateur que toute requête vers http://mysymfonyproject/ pointera sur votre machine.
Il faut maintenant créer notre schéma de données dans config/doctrine/schema.yml, pour cela, nous vous laissons prendre en exemple le fichier yaml du jobeet.
Il ne reste maintenant plus que les étapes de génération du modèle, de la base de données et des formulaires :
php symfony doctrine:build --model php symfony doctrine:build --sql php symfony doctrine:insert-sql php symfony doctrine:build --forms
Nous vous rappelons qu’il est possible de charger des données de tests directement en base avec les fichiers de data/fixtures/ avec la commande :
php symfony doctrine:data-load
Enfin, si vous aimez que les choses ailles vite, il est possible de tout générer et de charger les fixtures à l’aide d’une seule commande :
php symfony doctrine:build --all --and-load --no-confirmation
Nous approchons de la fin, mais il reste tout de même une dernière commande à ajouter à ce mémo, c’est bien sûr la commande qui permet de créer un nouveau module pour une application donnée. Admettons que nous voulons créer on module theme pour l’application frontend reposant sur le modèle Theme, nous exécutons la commande :
php symfony doctrine:generate-module --with-show --non-verbose-templates frontend theme Theme
Nous en avons terminé pour ce mémo, j’espère qu’il vous sera bien utile, en tout cas, pour nous il nous servira bien !

Ping : Comment créer un projet PHP avec le Framework MVC Symfony en … | Source code bank
Nouveau site de formations vidéos en ligne avec tutoriels vidéos sur le Framework Symfony :
http://www.formamotion.com/formavideos,7,53,Symfony.html