Comment créer un projet PHP avec le Framework MVC Symfony en quelques minutes

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 !

2 réflexions au sujet de « Comment créer un projet PHP avec le Framework MVC Symfony en quelques minutes »

  1. Ping : Comment créer un projet PHP avec le Framework MVC Symfony en … | Source code bank

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>