Symfony est un framework web PHP5, par conséquent il bénéficie des avantages de base de tout framework. Si c'est la première fois que vous utilisez un framework, l'énnonciation des concepts OOP, ORM, MVC, RAD, DRY etc ne vous fera pas sauter de joie, pire, vous pouvez même fuire. C'est dommage vous allez passer à côté de quelques chose de formidable, vous simplifiant votre vie de développeur.
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/batisseur, 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 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 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
LinuxIl 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 obtera pour la version Pear, qui permettra, tel un transporteur UPS, de nous envoyez 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
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 disposez d'un minimum de chose.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.