9782212144031
9782212144031
9782212144031
symfony3
Vous dveloppez des sites web rgulirement et vous en avez assez de rinventer la roue ? Vous aimeriez
utiliser les bonnes pratiques de dveloppement PHP pour concevoir des sites de qualit professionnelle ?
Cet ouvrage vous permettra de prendre en main Symfony, le framework PHP de rfrence. Comment
crer un nouveau projet avec Symfony, mettre en place les environnements de test et de production,
concevoir les contrleurs, les templates, grer la traduction et communiquer avec une base de donnes Alexandre Bacco
via Doctrine ? Vous dcouvrirez comment ce puissant framework, support par une large communaut, va
vous faire gagner en efficacit.
Prface de Fabien Potencier
symfony3
Vue densemble de Symfony Passionn de dveloppement web, Alexandre
DVELOPPEZ VOTRE SITE WEB AVEC LE FRAMEWORK
symfony3
Symfony, un framework PHP Bacco participe la cration de la version 3
Vous avez dit Symfony ? dOpenClassrooms durant ses tudes. Diplm
Utiliser la console pour crer un bundle de lcole Centrale de Lyon, une cole
dingnieur gnraliste, il tombe sous le charme
Les bases de Symfony
symfony3
Vous dveloppez des sites web rgulirement et vous en avez assez de rinventer la roue ? Vous aimeriez
utiliser les bonnes pratiques de dveloppement PHP pour concevoir des sites de qualit professionnelle ?
Cet ouvrage vous permettra de prendre en main Symfony, le framework PHP de rfrence. Comment
crer un nouveau projet avec Symfony, mettre en place les environnements de test et de production,
concevoir les contrleurs, les templates, grer la traduction et communiquer avec une base de donnes Alexandre Bacco
via Doctrine ? Vous dcouvrirez comment ce puissant framework, support par une large communaut, va
vous faire gagner en efficacit.
Prface de Fabien Potencier
symfony3
Vue densemble de Symfony Passionn de dveloppement web, Alexandre
DVELOPPEZ VOTRE SITE WEB AVEC LE FRAMEWORK
symfony3
Symfony, un framework PHP Bacco participe la cration de la version 3
Vous avez dit Symfony ? dOpenClassrooms durant ses tudes. Diplm
Utiliser la console pour crer un bundle de lcole Centrale de Lyon, une cole
dingnieur gnraliste, il tombe sous le charme
Les bases de Symfony
SYMFONY3
DANS LA MME COLLECTION
SYMFONY3
DITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.com
Enfin, parce que la structure originale de Symfony un framework mais aussi des com-
posants autonomes a sduit de nombreux projets open source dimportance (Drupal,
EZ Publish, PhpBB, etc.) et les a conduits asseoir leur dveloppement sur le projet
Symfony. La version8 de Drupal par exemple intgre plus de 10composants essentiels
de Symfony. Cette large adoption par dautres projets open source, mais aussi par de
nombreux projets commerciaux a permis de crdibiliser et de populariser plus encore
le framework.
Et vous dans tout cela?
En dcidant dacheter et de lire ce livre, vous faites probablement vos premiers pas
dans une technologie mais aussi une communaut unique. Dans les mois venir, peut-
tre utiliserez-vous Symfony pour dvelopper des projets pour des clients, aurez-vous
besoin de consulter de la documentation, dchanger avec dautres utilisateurs, vous
retrouverez-vous lors dvnements annuels (les Symfony Live) pour changer avec vos
pairs? Quels que soient vos besoins, le site symfony.com vous offrira les ressources
ncessaires.
Et puis, avec la pratique et lexprience, jespre que vous rejoindrez un jour les contri-
buteurs dvous qui font chaque jour le succs de Symfony.
Dici l, je vous souhaite une excellente lecture!
Fabien Potencier
Crateur de Symfony et prsident de SensioLabs
Table des matires
Introduction 1
1 Symfony, un frameworkPHP 5
Quest-ce quun framework?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Lobjectif dun framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Dfinition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Objectif dun framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Pesons le pour et le contre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Alors, convaincus?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Quest-ce que Symfony?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Un framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Un framework populaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Un framework populaire et franais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Quest-il possible de faire avec Symfony? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Tlcharger Symfony. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Vrifier linstallation de PHP en console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Obtenir Symfony. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Droits daccs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Le rpertoire /bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Le rpertoire /src. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Le rpertoire /tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Le rpertoire /var. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Le rpertoire /vendor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Le rpertoire /web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Le contrleur frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Larchitecture conceptuelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Architecture MVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Parcours dune requte dans Symfony. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Symfony et ses bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
La dcoupe en bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Lintrt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
La bonne pratique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Les bundles de la communaut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
La structure dun bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
VIII
Table des matires
5 Le routeur deSymfony 51
Le fonctionnement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Fonctionnement du routeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Convention pour le nom du contrleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Les routes de base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Crer une route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Crer une route avec des paramtres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Les routes avances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Crer une route avec des paramtres et leurs contraintes. . . . . . . . . . . . . . . . . . . 57
Utiliser des paramtres facultatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Utiliser des paramtres systme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Ajouter un prfixe lors de limport de nos routes. . . . . . . . . . . . . . . . . . . . . . . . . 60
Gnrer des URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Pourquoi gnrer des URL?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Comment gnrer des URL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Application: les routes de notre plate-forme. . . . . . . . . . . . . . . . . . . . . . . . . . 63
Page daccueil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Page de visualisation dune annonce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Ajout, modification et suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Rcapitulatif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Pour conclure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
IX
Dveloppez votre site web avec le framework Symfony3
Rponse et redirection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Changer le Content-type de la rponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Manipuler la session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Application: le contrleur de notre plate-forme. . . . . . . . . . . . . . . . . . . . . . . . 81
retenir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Lerreur404. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
La dfinition des mthodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Tester les types derreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Pour conclure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
X
Table des matires
XI
Dveloppez votre site web avec le framework Symfony3
XII
Table des matires
XIII
Dveloppez votre site web avec le framework Symfony3
XIV
Table des matires
XV
Dveloppez votre site web avec le framework Symfony3
XVI
Table des matires
XVII
Dveloppez votre site web avec le framework Symfony3
XVIII
Table des matires
24 Utiliser Assetic pour grer les codes CSSetJS de votre site 479
Thorie: entre vitesse et lisibilit, pourquoi choisir? . . . . . . . . . . . . . . . . . . . . 479
propos du nombre de requtes HTTP dune page web. . . . . . . . . . . . . . . . . . . 479
Comment optimiser le front-end? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Amliorer le temps de chargement!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
En action!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Pratique: Assetic la rescousse!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Installer Assetic et les bibliothques de compression . . . . . . . . . . . . . . . . . . . . . . 481
Servir des ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Modifier les ressources servies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Grer le mode prod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Comprendre Assetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Exporter ses fichiers CSSetJS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Et bien plus encore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
XIX
Dveloppez votre site web avec le framework Symfony3
Index 509
Introduction
Vous dveloppez des sites web rgulirement et vous en avez assez de rinventer la
roue? Vous aimeriez utiliser les bonnes pratiques de dveloppement PHP pour conce-
voir des sites web de qualit professionnelle?
Ce cours vous permettra de prendre en main Symfony, le framework PHP de rfrence.
Pourquoi utiliser un framework? Comment crer un nouveau projet de site web avec
Symfony, mettre en place les environnements de test et de production, concevoir les
contrleurs, les templates, grer la traduction et communiquer avec une base de don-
nes via Doctrine?
Je vous montrerai tout au long de ce cours comment ce puissant framework, adopt par
une large communaut, va vous faire gagner en efficacit. Fabien Potencier, crateur
de Symfony, introduira chacun des chapitres par une vido explicative des principaux
points abords. Les vidos peuvent tre visionnes sur le site web associ au livre
(www.editions-eyrolles.com/dl/0014403).
Premire partie
Si vous ne matrisez pas ces trois points, je vous invite vraiment les apprendre avant
de commencer la lecture de ce cours. Symfony requiert ces bases et, si vous ne les avez
pas, vous risquez de mettre plus de temps pour assimiler ce cours. Cest comme acheter
un A380 sans savoir piloter: cest joli mais vous nirez pas bien loin.
Premire partie Vue densemble de Symfony
Alors, vous avez dcid de vous lancer dans Symfony? Parfait, vous ne le regrette-
rez pas! Tout au long de ce cours, nous apprendrons utiliser ce framework et vous
comprendrez petit petit la puissance de cet outil. Commenons tout dabord par les
bases et voyons prcisment quels sont les objectifs et les limites dun framework tel
que Symfony.
Lobjectif de ce chapitre nest pas de vous fournir toutes les cls pour concevoir un
framework, mais suffisamment pour pouvoir en utiliser un. On exposera rapidement
lintrt, les avantages et les inconvnients de lutilisation dun tel outil.
Dfinition
Le mot framework provient de langlais frame, qui veut dire cadre en franais, et
work, qui signifie travail. Littralement, cest donc un cadre de travail. Concrtement,
cest un ensemble de composants qui sert crer les fondations, larchitecture et les
grandes lignes dun logiciel. Il existe des centaines de frameworks couvrant la plupart
des langages de programmation. Ils sont destins au dveloppement de sites web ou
bien la conception de logiciels.
Un framework est une bote outils conue par au moins un dveloppeur destination
dautres dveloppeurs. Contrairement certains scripts tels que WordPress, Dotclear
ou autres, un framework nest pas utilisable tel quel. Il nest pas conu pour les utilisa-
teurs finaux. Le dveloppeur qui se sert dun framework a encore du travail fournir,
do ce cours!
6
Chapitre1.Symfony, un frameworkPHP
Comme tout bon dveloppeur, lorsquon veut utiliser un nouvel outil, on doit en peser
le pour et le contre pour tre sr de faire le bon choix!
Le pour
Lavantage premier est donc, on vient de le voir, le gain en productivit. Mais il en
existe bien dautres! On peut les classer en plusieurs catgories: le code, le travail et
la communaut.
Tout dabord, un framework vous aide raliser un bon code, cest--dire quil
vous incite, de par sa propre architecture, bien organiser votre code. Et un code bien
organis est volutif et facile maintenir! De plus, un framework offre des briques
prtes lemploi (le composant Form de Symfony par exemple), ce qui vous vite
de rinventer la roue, et surtout qui vous permet dutiliser des briques puissantes et
prouves. En effet, ces dernires sont dveloppes par des quipes de dveloppeurs
chevronns; elles sont donc trs flexibles et trs robustes. Vous conomisez ainsi des
heures de dveloppement!
Ensuite, un framework amliore la faon dont vous travaillez. En effet, dans le cas
dun site Internet, vous travaillez souvent avec dautres dveloppeurs PHP et un desi-
gner. Un framework vous aide doublement dans ce travail en quipe. Dune part, un
framework utilise presque toujours larchitecture MVC; on en reparlera, mais sachez
pour le moment que cest une faon dorganiser son code en sparant le PHP du HTML.
Ainsi, votre designer peut travailler sur des fichiers diffrents des vtres; finis les
problmes ddition simultane dun mme fichier! Par ailleurs, un framework a une
structure et des conventions de code connues. Ainsi, vous pouvez facilement recruter
un autre dveloppeur: sil connat dj le framework en question, il sintgrera trs
rapidement au projet.
Enfin, le dernier avantage est la communaut soutenant chaque framework. Cest
elle qui fournit les tutoriels ou les cours (comme celui que vous lisez!), de laide
sur les forums et, bien sr, les mises jour du framework. Ces dernires sont trs
importantes: imaginez que vous codiez vous-mmes tout ce qui est connexion uti-
lisateur, session, moteur de templates, etc. Comme il est impossible de coder sans
bogues, vous devriez logiquement corriger chaque erreur dclare sur votre code.
Maintenant, imaginez que toutes les briques de votre site, qui ne sont pas forcment
votre tasse de th, soient fournies par le framework. chaque fois que vous ou les
milliers dautres utilisateurs du framework trouverez une bogue, les dveloppeurs et
la communaut soccuperont de le corriger et vous naurez plus qu suivre les mises
jour. Un vrai paradis!
Il existe plein dautres avantages que je ne vais pas vous dtailler, mais un framework,
cest aussi:
une communaut active qui utilise le framework et qui contribue en retour;
une documentation de qualit et rgulirement mise jour;
un code source maintenu par des dveloppeurs attitrs;
7
Premire partie Vue densemble de Symfony
Le contre
Vous vous en doutez, avec autant davantages il y a forcment des inconvnients. Et
bien, figurez-vous quil ny en a pas tant que a!
Sil ne fallait en citer quun, cela serait videmment la courbe dapprentissage qui est
plus leve. En effet, pour matriser un framework, il faut un temps dapprentissage
non ngligeable. Chaque brique qui compose un framework a sa complexit propre quil
vous faudra apprhender.
Notez galement que pour les frameworks les plus rcents, tels que Symfony justement,
il faut tre au courant des dernires nouveauts de PHP. Connatre certaines bonnes
pratiques telles que larchitecture MVC est un plus.
Toutefois, rien de tout cela ne doit vous effrayer! Voyez lapprentissage dun framework
comme un investissement: il y a un certain effort fournir au dbut, mais les rsultats
se rcoltent ensuite sur le long terme!
Alors, convaincus?
Jespre vous avoir convaincus que le pour lemporte largement sur le contre. Si vous
tes prts relever le dfi aujourdhui pour tre plus productifs demain, alors ce cours
est fait pour vous!
Un framework
Symfony est donc un framework PHP. Bien sr, il en existe dautres: Zend
Framework (http://framework.zend.com/), CodeIgniter (http://codeigniter.com/), CakePHP
(http://cakephp.org/), etc. Le choix dun framework est assez personnel et doit tre
adapt au projet engag. Sans vouloir prcher pour ma paroisse, Symfony est lun des
plus flexibles et des plus puissants.
Un framework populaire
Symfony est trs populaire. Cest un des frameworks les plus utiliss dans le monde,
notamment dans les entreprises. Citons Dailymotion par exemple! La premire ver-
sion de Symfony est sortie en 2005 et est aujourdhui toujours trs rpandue. Cela lui
apporte un retour dexprience et une notorit exceptionnels. Aujourdhui, beaucoup
dentreprises dans le domaine dInternet (dont OpenClassrooms!) recrutent des dve-
loppeurs capables de travailler sous ce framework. Ces dveloppeurs pourront ainsi
8
Chapitre1.Symfony, un frameworkPHP
se greffer aux projets de lentreprise trs rapidement, car ils en connatront dj les
grandes lignes. Cest un atout si vous souhaitez travailler dans ce domaine.
La deuxime version est sortie en aot 2011. Son dveloppement a t fulgurant grce
une communaut de dveloppeurs dvous. Bien que diffrente dans sa conception,
cette deuxime version est plus rapide et plus souple que la premire. Trs rapidement
aprs sa sortie, de nombreuses entreprises sarrachaient dj les comptences des
dveloppeurs Symfony2.
Enfin la troisime version, que nous tudierons dans ce cours, est la maturation de la
version2. Elle sinscrit dans la continuit de la prcdente et vient en supprimer tous
les points dprcis qui freinaient son dveloppement. La version3 est donc une ver-
sion2 amliore, qui fait table rase des quelques erreurs de jeunesse et ouvre la voie
encore plus dvolution lavenir! Contrairement au passage entre les deux premires
moutures, le passage entre les versions 2et3 se fait relativement facilement; vous
navez pas rcrire votre code pour mettre jour!
Comme vous pouvez le voir, Symfony se dveloppe vive allure et aujourdhui il est
presque incontournable en entreprise. Faites partie de la communaut!
Et, oui, Symfony, lun des meilleurs frameworks PHP au monde, est franais! Il est
dit par la socit SensioLabs (http://sensiolabs.com/), dont le crateur est Fabien
Potencier. Cependant, Symfony tant open source, il a galement t crit par toute
la communaut: beaucoup de Franais, mais aussi des dveloppeurs de tous horizons:
Europe, tats-Unis, etc. Cest grce au talent de Fabien et la gnrosit de la
communaut que Symfony a vu le jour.
Avec Symfony, comme avec beaucoup de frameworks PHP, vous ntes limits
que par votre imagination! En effet, il est possible de tout faire: ce nest pas le
framework qui vous posera des limites, il ne met en place quun cadre de travail. Libre
vous dutiliser ce cadre comme bon vous semble! Je vous ai parl de Dailymotion
(http://www.dailymotion.com/fr), un site de partage de vidos, mais vous pouvez galement
crer un site e-commerce, comme je lai fait avec Caissin (https://www.caissin.fr/)
ou encore un site plus complexe tel quOpenClassrooms (https://openclassrooms.com/),
qui tourne galement sur Symfony.
Cest lune des forces de Symfony: il vous permet de crer le site Internet de vos rves
en vous fournissant tous les outils ncessaires pour y arriver avec succs.
9
Premire partie Vue densemble de Symfony
Tlcharger Symfony
Nous aurons parfois besoin dexcuter des commandes PHP via la console pour gnrer
du code ou grer la base de donnes. Ce sont des commandes qui vont nous faire gagner
du temps (toujours le mme objectif!). Vrifions donc que PHP est bien disponible
en console. Rassurez-vous, je vous indiquerai toujours pas pas comment les utiliser.
Si vous tes sous Linux ou Mac, vous ne devriez pas avoir de souci; PHP est bien
disponible en console. Si vous tes sous Windows, rien nest sr. Dans tous les cas,
vrifiez-le en ouvrant linvite de commandes pour Windows, ou le terminal pour Linux.
Sous Windows
Lancez linvite de commandes: Menu Dmarrer>Programmes>Accessoires>Invite
de commandes. Une fentre semblable la figure suivante devrait apparatre.
La console Windows
C:\Users\winzou> php-v
PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:55)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
10
Chapitre1.Symfony, un frameworkPHP
winzou@laptop:~$ php-v
Si tout va bien
Si cette commande vous retourne bien la version de PHP et dautres informations,
tout est bon. Profitez-en pour vrifier votre version de PHP; nous aurons besoin ici
de la version5.5 au minimum. Si vous avez PHP5.4 ou infrieur, vous devez dabord
le mettre jour.
En cas derreur
Si vous tes sous Windows et si la commande affiche une erreur, votre PHP est sre-
ment bien install, mais Windows ne sait pas o le trouver; il faut juste lui montrer le
chemin. Voici la dmarche suivre pour rgler ce problme.
1. Allez dans les paramtres systme avancs (Dmarrer>Panneau de configura-
tion>Systme et scurit>Systme>Paramtres systme avancs).
2. Cliquez sur le bouton Variables denvironnement
3. Regardez dans le panneau Variables systme.
4. Trouvez lentre Path (vous devriez avoir faire descendre lascenseur pour la
trouver) et double-cliquez dessus.
5. Entrez votre rpertoire PHP la fin, sans oublier le point-virgule en dbut de
ligne. Cest le rpertoire dans lequel se trouve le fichier php.exe; par exemple,
C:\wamp\bin\php\php5.5.12.
6. Confirmez en cliquant surOK. Vous devez ensuite redmarrer linvite de com-
mandes pour prendre en compte les changements.
Si vous tes sous Linux, vrifiez votre installation de PHP. Vous devez notamment avoir
le paquet php5-cli, qui est la version console dePHP.
Dans les deux cas, vrifiez aprs vos manipulations que le problme est bien rsolu.
Pour cela, excutez nouveau la commande php-v. Elle devrait alors vous afficher
la version dePHP.
Et voil, votre poste de travail est maintenant oprationnel pour dvelopper avec
Symfony!
Obtenir Symfony
11
Premire partie Vue densemble de Symfony
Il existe de nombreux moyens dobtenir Symfony. Nous allons voir ici la mthode recom-
mande: le Symfony Installer. Il sagit dun petit fichier PHP (un package PHAR en
ralit) tlcharger puis excuter sur votrePC.
Rendez-vous ladresse suivante: http://symfony.com/installer. Cela va tlcharger un
fichier symfony.phar, que vous devez dplacer dans votre rpertoire /web habituel,
par exemple C:\wamp\www pour Windows ou /var/www pour Linux.
Ce fichier permet dexcuter plusieurs commandes, mais la seule qui nous intresse
pour linstant est new, qui cre un nouveau projet Symfony en partant de zro.
Puis allez dans le rpertoire o vous avez plac le fichier symfony.phar, en utilisant
la commande cd (je vous laisse adapter la commande si vous tes sous Linux ou Mac):
C:\Users\winzou> cd ../../wamp/www
C:\wamp\www> _
Sous Windows, vous avez galement la possibilit de vous rendre dans votre rpertoire
/web via lexplorateur de fichiers et de cliquer-droit en appuyant en mme temps
sur la touche Maj de votre clavier. Dans le menu contextuel, choisissez Ouvrir une
fentre de commandesici.
Et voil! Vous venez de tlcharger tout le ncessaire pour faire tourner un projet
Symfony dans le rpertoire C:\wamp\www\Symfony (ou /var/www/Symfony sur
Linux).
Pour la suite du cours, je considrerai que les fichiers sont accessibles lURL
http://localhost/Symfony. Je vous recommande davoir la mme adresse, car je ferai ce
genre de liens tout au long du cours.
12
Chapitre1.Symfony, un frameworkPHP
Droits daccs
Je fais un petit apart pour les lecteurs travaillant sous Linux (sous Windows pas de
souci, vous pouvez passer votre chemin). Symfony a besoin dcrire dans le rpertoire
var, il faut donc bien rgler les droits dessus. Pour cela, placez-vous dans le rpertoire
Symfony et videz dabordvar:
rm -rf var/*
Pour ceux qui sont encore en version2.8, les rpertoires dans lesquels Symfony2 crit
! sont app/cache et app/logs. Vous devez donc adapter les commandes ces
rpertoires.
Ensuite, si votre distribution supporte le chmod +a, excutez ces commandes pour dfinir
les bons droits:
Si vous rencontrez une erreur avec ces commandes (le chmod+a nest pas disponible
partout), excutez les commandes suivantes:
Enfin, si vous ne pouvez pas utiliser les ACL (utiliss dans les commandes prcdentes),
dfinissez simplement les droits comme suit:
13
Premire partie Vue densemble de Symfony
En rsum
Sur le site OpenClassrooms, vous trouverez la vido dun entretien avec le crateur de
Symfony.
Pour plus dinformations, nhsitez pas consulter les sites suivants:
Symfony http://symfony.com
SensioLabs Connect https://connect.sensiolabs.com
lpoque o nous avons ralis cette interview, Symfony ntait encore quen
version 2 ; cest donc celle-l qui est voque dans la vido. Mais le discours reste
dactualit!
14