Pour expliquer certains concepts j'utilise souvent des analogies avec le monde réel. Aujourd'hui j'ai décidé de rapprocher l'utilisation de Symfony avec la construction d'une maison. Quand vous utilisez PHP5, Xhtml, Css pour bâtir votre application Web, ça revient à contruire votre maison brique par brique, c'est passionnant vous faites ce que vous voulez, mais c'est terriblement long. Ce qui est intéressant pour vous c'est de décorer votre intérieur, de placer vos meubles, de regarder votre film préféré sur votre écran HD dernier cri, bref construire des murs, qui donneront une pièce puis un étage c'est finalement répétitif et sans grand intérêt. La solution vous la connaissez, c'est de sous traiter ces tâches ennuyeuses, Symfony deviendra donc votre architecte/bâtisseur, capable comme pour la construction d'un étage, pièce, mur de créer une interface d'administration sur mesure en vue de gérer des articles de presse (par exemple). La quasi totalité des tâches de base sont gérées par Symfony, à condition de lui parler dans sa langue, ça reste une fois de plus très simple.

Avant installation
La section suivante porte sur l'installation de l'architecte Symfony au sein de votre environnement de travail. Une fois installé sur votre machine, vous vous moquez éperdument d'où se cache symfony, ce qu'il est important de noter c'est que dès que vous voulez le faire travailler sur votre projet ou maison, vous devez être dans votre maison et l'appelez. En ligne de commande ça donne : cd /chemin/projetSymfony/ pour se rendre dans le bon dossier puis symfony init-project nomProjet et hop les fondations de votre maison sont faites, les plans pour les contructions suivantes sont établis, symfony à déjà même prévu de travailler avec des fournisseurs étrangers (base de données) pour recevoir les meubles, je ne m'étends pas.

1. Installation

1.2 Pack Serveur, moteur Php

Comme Symfony permet de travailler sur des applications Web il est crucial de disposer du trio ServeurWeb, Php5, Base de données sur votre machine. Il existe diverses manières d'installer le package minimum selon si vous êtes débutants paresseux, Gourous fous ou bien encore sous Linux , MacOs , Windows.
  • Linux (ubuntu) je vous propose de le faire à la main en installant les paquets Apache2 (serveur Web), Php5, Postgresql ou Mysql. Cf. Installation Serveur
  • Windows, utilisez WAMP

1.3 Installation de Symfony

Linux
Il existe trois manières d'installer Symfony sur votre machine. La première consiste à utiliser SVN, la deuxième par Pear et la dernière via le packet php5-symfony. On optera pour la version Pear, qui permettra, tel un transporteur UPS, de nous envoyer notre architecte tout beau tout neuf.

Dans un terminal, tapez :
  • pear channel-discover pear.symfony-project.com // je consulte le catalogue pear et je m'arrête sur la page qui m'intéresse
  • pear install symfony/symfony // je passe ma commande pour recevoir mon architecte symfony
Si les commandes pear ne passent pas assurez vous d'avoir pear d'installé : sudu apt-get install php-pear

2. Utilisation de symfony

Merci de vous référer à la documentation officielle pour comprendre chaque commande mise à votre disposition. Pour lister les commandes utilisez toujours dans un terminal, la commande symfony on obtient alors pour la version actuelle 1.0.8 :
  • clear-cache > clear cached information
  • clear-controllers > clear controllers
  • disable > disables an application in a given environment
  • downgrade > downgrade to a previous symfony release
  • enable > enables an application in a given environment
  • fix-perms > fix directories permissions
  • freeze > freeze symfony libraries
  •  init-app > initialize a new symfony application
  • init-batch > initialize a new symfony batch script
  • init-controller > initialize a new symfony controller script
  • init-module > initialize a new symfony module
  • init-project > initialize a new symfony project
  • log-purge > purges an applications log files
  • log-rotate > rotates an applications log files
  • plugin-install > install a new plugin
  • plugin-list > list installed plugins
  • plugin-uninstall > uninstall a plugin
  • plugin-upgrade > upgrade a plugin
  • propel-build-all > generate propel model and sql and initialize database
  • propel-build-all-load > generate propel model and sql and initialize database, and load data
  • propel-build-db > create database for current model
  • propel-build-model > create classes for current model
  • propel-build-schema > create schema.xml from existing database
  • propel-build-sql > create sql for current model
  • propel-convert-xml-schema > create schema.yml from schema.xml
  • propel-convert-yml-schema > create schema.xml from schema.yml
  • propel-dump-data > dump data to fixtures directory
  • propel-generate-crud > generate a new propel CRUD module
  • propel-init-admin > initialize a new propel admin module
  • propel-init-crud > initialize a new propel CRUD module
  • propel-insert-sql > insert sql for current model
  • propel-load-data > load data from textures directory
  • sync > synchronise project with another machine
  • test-all > launch all tests
  • test-functional > launch functional tests for an application
  • test-unit > launch unit tests
  • unfreeze > unfreeze symfony libraries
  • upgrade > upgrade to a new symfony release
  • app = pake init-app
  • batch = pake init-batch
  • cc = pake clear-cache
  • controller = pake init-controller
  • module = pake init-module
  • new = pake init-project

3 Trouver de l'aide

Il existe plusieurs façons de trouver de l'aide, soit en prenant le risque de me contacter à l'adresse martin[dot]sam[at]gmail[dot]com soit en contactant des gens experts dans le domaine sur IRC ou sur la googlegroups symfony. Pour IRC après vous être connecté au serveur Freenode à l'aide de Xchat (par défaut), rejoignez la channel symfony-fr ou symfony en tapant depuis votre logiciel : /#symfony-fr.

Evidemment il reste la documentation en ligne accessible à l'adresse http://symfony-project.com
et le livre "The Definitive Guide to Symfony" paru aux éditions Apress.

4 Installation Webserver

Pour que Symfony fonctionne vous devez disposer d'un minimum de choses.

Via un terminal, tapez :
sudo apt-get install apache2 apache2-utils libapache2-mod-php5 php5 php5-cli php5-mcrypt php5-mysql php5-pgsql php5-sqlite php5-xsl mysql-client mysql-server phpmyadmin postgresql postgresql-client pgadmin3


Plus : Des articles de Symfony sont souvent présent sur Prendre un café, jetez un œil c'est toujours intéressant !!, sinon il reste toujours la documentation du symfony.