Development

Changeset 25626

You must first sign up to be able to contribute.

Changeset 25626

Show
Ignore:
Timestamp:
12/19/09 14:25:53 (3 years ago)
Author:
forresst
Message:

[doc-fr][1.2] Update doc in french, jobeet/01 rev:en/17568

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • doc/branches/1.2/jobeet/fr/01.txt

    r23298 r25626  
    55------------ 
    66 
    7 Le framework symfony est un projet Open-Source depuis plus de 3 ans. Il est 
    8 .devenu l'un des plus populaire framework PHP grâce à ses fonctionnalités et sa 
     7Le ~framework|Framework~ symfony est un projet ~Open-Source~ depuis plus de 3 ans. Il est 
     8devenu l'un des plus populaire framework PHP grâce à ses fonctionnalités et sa 
    99bonne documentation. Cette grande tradition à commencer dès le début. 
    1010 
    1111En Décembre 2005, après la première version officielle de symfony, nous avons 
    1212publié "[le tutorial Askeet](http://www.symfony-project.org/askeet/1_0/fr/)", 
    13 une série de 24 tutoriaux publiés jour par jour entre le 1er Décembre et Noël. 
    14  
    15 Ce tutorial a prouvé qu'il était un formidable outils pour promouvoir le 
    16 framework aux nouveaux développeurs. Beaucoup de développeurs ont appris symfony 
    17 grâce à askeet, et beaucoup d'entreprises l'utilisent encore aujourd'hui comme 
    18 principal support d'apprentissage. 
    19  
    20 Nous célébrons actuellement la version 1.2 de symfony et le tutorial askeet 
    21 commence à montrer son âge. C'est le temps pour un nouveau tutorial tout 
    22 frais. 
    23  
    24 Découvrez Jobeet, le tutorial du calendrier l'Avent 2008 ! 
     13une série de 24 tutoriels publiés jour par jour entre le 1er Décembre et Noël. 
     14 
     15Ce tutoriel a prouvé qu'il était un formidable outil pour promouvoir le framework aux 
     16nouveaux développeurs. Beaucoup de développeurs ont appris symfony grâce à askeet, et beaucoup 
     17d'entreprises l'utilisent encore aujourd'hui comme principal support d'apprentissage. 
     18 
     19Mais le tutoriel askeet a commencé à montrer son âge et avec la publication de 
     20symfony 1.2, nous avons décidé de publier un nouveau calendrier de l'avent, Jobeet. 
     21 
     22Ce tutoriel a été publié au jour le jour sur le blog de symfony en 2008, 
     23et vous lisez son incarnation en livre. 
    2524 
    2625Le défi 
    2726------- 
    2827 
    29 C'est vrai, nous le faisons à nouveau. Chaque jour, week-end inclus, nous 
    30 publierons un nouveau tutorial. Chaque tutorial dure 1 heure, et ce sera 
    31 l'occasion de développer un vrai site web du début à la fin. 
     28Chaque chapitre/jour est destiné à durer environ une heure, et sera l'occasion 
     29d'apprendre symfony en codant un vrai site web, du début à la fin. 
    3230 
    333124 fois une heure est égal à un jour, nous pensons que c'est le temps nécessaire 
    34 à un développeur pour apprendre les bases de symfony. Chaque jour nous 
     32à un développeur pour apprendre les bases de symfony. Chaque jour, nous 
    3533ajouterons de nouvelles fonctionnalités à l'application. Nous en profiterons 
    3634pour vous présenter les nouvelles fonctionnalités de symfony ainsi que les 
    3735bonnes pratiques de développement web. 
    3836 
    39 Pour askeet, le 21ième jour était : "payez vous un gourou symfony pour un jour". 
    40 Nous n'avions pas de plan et la communauté devait nous proposer une 
    41 fonctionnalité à ajouter à askeet. Ce fût un énorme succès et la communauté 
    42 décida que l'application devait avoir un moteur de recherche. Et nous l'avons 
    43 fait. Le 21ième jour a également montré, que c'était l'un des plus populaires du 
    44 tutorial askeet. 
    45  
    46 Pour Jobeet, nous allons célébré le jour de l'hiver ce 21 Décembre par un "jour 
    47 du design". Après le 4ième jour, nous allons avoir tout le code HTML et CSS 
    48 nécessaire pour commencer le conception graphique du site web public de Jobeet. 
    49 Donc si vous travaillez avec un graphiste, ou que votre entreprise a un 
    50 département avec des graphistes, vous êtes alors capable de proposer une 
    51 conception graphique. Le 21 Décembre, nous proposerons un sondage, et la 
    52 communauté choisira la conception graphique fournie avec Jobeet. Vous serez bien 
    53 sûr dans les crédits et vous aurez la célébrité qui va avec ! 
    54  
    55 Ce tutorial est différent 
     37Pour askeet, le 21ième jour était : "payez vous un gourou symfony pour un jour". Nous n'avions 
     38pas de plan et la communauté devait nous proposer une fonctionnalité à ajouter à askeet. Ce fût un 
     39énorme succès et la communauté décida que l'application devait avoir un moteur de 
     40recherche. Et nous l'avons fait. Le 21ième jour a également montré, que c'était l'un des 
     41plus populaires du tutoriel askeet. 
     42 
     43Pour Jobeet, nous avons célébré le jour de l'hiver ce 21 Décembre par un "jour du design". Le 
     44design gagnant a été présenté par le centre{source}, et est utilisé dans ce tutoriel 
     45pour le design par défaut. Il est également utilisé pour le design du site Jobeet. 
     46 
     47Ce tutoriel est différent 
    5648-------------------------- 
    5749 
    58 Souvenez-vous des premiers jours de PHP4. Ah,la [Belle 
    59 Époque](http://fr.wikipedia.org/wiki/Belle_Époque)! PHP était un des premiers 
    60 langages dédiés au web et un des plus simples à apprendre. 
    61  
    62 Mais comme les technologies du web évoluent à un rythme très rapide, les 
    63 développeurs doivent se tenir informé des dernières bonnes pratiques et des 
    64 derniers outils. La meilleure façon d'apprendre est de lire des articles de blog, 
    65 des tutoriaux, et des livres. Nous en avons beaucoup lu, que ce soit pour du 
    66 PHP, Python, Java, Ruby, ou Perl, et beaucoup d'entre eux commencent à être 
    67 limités lorsque l'auteur donne des bouts de code à titre d'exemple. 
    68  
    69 Vous avez probablement lu des avertissements comme ceux-ci : 
    70  
    71   "Pour une application réelle, n'oubliez pas de gérer la validation et la 
    72   gestion des erreurs." 
    73  
    74 ou 
    75  
    76   "La sécurité n'est pas abordé car c'est un exercice." 
    77  
    78 ou 
    79  
    80   "Vous devez bien sûr écrire des tests." 
    81  
    82 Comment ? Ces choses sont sérieuses. Ce sont probablement les parties les plus 
    83 importantes de n'importe quelle partie du code. Et comme un lecteur, on vous 
    84 laisse seul avec. Sans prendre en compte ces sujets, les exemples sont moins 
    85 utiles. Vous ne pouvez pas les utilise comme bon point de départ. C'est mauvais 
    86 ! Pourquoi ? Parce que la sécurité, la validation, la gestion des erreurs, et 
    87 les tests, pour ne nommer qu'eux, sont à prendre en compte pour bien développer.  
    88  
    89 Dans ce tutorial, vous ne lirez jamais d'avertissements comme ceux cités 
    90 ci-dessus car nous allons écrire des tests, du code pour la gestion d'erreur ou 
    91 de validation, et soyez certain que nous allons développer une application 
    92 sécurisée. C'est pourquoi symfony traite du code, mais également des bonnes 
    93 pratiques et comment développer des applications professionnelles pour les 
    94 entreprises. Nous allons nous permettre ce luxe car symfony fournit tous les 
    95 outils pour développer facilement ces aspects sans écrire trop de ligne de code. 
    96  
    97 La validation, la gestion des erreurs, la sécurité, et les tests sont des 
    98 citoyens de première classe dans symfony, cela ne prendra pas trop de temps à 
    99 expliquer. C'est seulement une des raisons pour utiliser un framework pour les 
    100 projets "de la vie réelle". 
    101  
    102 Le code que vous lirez dans ces tutoriaux est du code que vous pouvez utilisez 
    103 dans vos projets. Nous vous encourageons à copier et coller des bouts de code ou 
    104 voler des parties entières. 
     50Rappelez-vous les premiers jours de PHP4. 
     51Ah, la [Belle Epoque](http://en.wikipedia.org/wiki/Belle_Époque) ! PHP est l'un 
     52des premiers langages dédiés au web et l'un des plus facile à apprendre. 
     53 
     54Mais comme les technologies du web évoluent à un rythme très rapide, les développeurs Web doivent se tenir 
     55au courant sur les dernières meilleures pratiques et les outils. La meilleure façon d'apprendre est bien sûr 
     56par la lecture des blogs, des tutoriels et des livres. Nous avons lu beaucoup d'entre eux, qu'ils 
     57soient écrits pour PHP, Python, Java, Ruby ou Perl, et beaucoup d'entre eux nous laisse sur notre faim lorsque 
     58l'auteur commence à donner des morceaux de codes à titre d'exemples. 
     59 
     60Vous êtes sans doute habitués à lire des avertissements du genre:  
     61 
     62  «Pour une application réelle, n'oubliez pas d'ajouter la validation et la manipulation d'erreur appropriée.» 
     63 
     64Ou 
     65 
     66  «La sécurité est laissée en exercice au lecteur.» 
     67 
     68Ou 
     69 
     70  «Vous aurez bien sûr besoin d'écrire des tests.» 
     71 
     72Pardon ? Ces choses sont sérieuses. Ils sont peut-être la partie la plus importante 
     73de tout morceau de code. Et en tant que lecteur, on vous laisse seuls. Sans que ces préoccupations 
     74soient prises en compte, les exemples sont beaucoup moins utiles. Vous ne pouvez pas les utiliser comme 
     75un bon point de départ. C'est très grave ! Pourquoi ? Parce que la sécurité, la validation, le traitement 
     76des erreurs et les tests, pour n'en nommer que quelques-uns, sont importants pour avoir un bon code. 
     77 
     78Dans ce tutoriel, vous ne verrez jamais des déclarations car nous allons écrire des tests, 
     79la gestion d'erreur, le code de validation, et soyez sûr que nous développons une application sécurisée. 
     80C'est parce que symfony est sur??? le code, mais également sur les meilleures pratiques et comment 
     81développer des applications professionnelles pour l'entreprise. Nous serons en mesure 
     82de se permettre ce luxe, car symfony fournit tous les outils nécessaires pour coder ces 
     83aspects aisément sans écrire trop de code. 
     84 
     85La validation, la manipulation d'erreur, la sécurité, et les tests sont des citoyens de première classe 
     86dans symfony, ainsi cela ne nous prendra pas trop de temps à expliquer. Ce n'est là qu'une des nombreuses 
     87raisons d'utiliser un framework pour la «vie réelle» des projets. 
     88 
     89Tout le code que vous lirez dans ce tutoriel est un code que vous pourriez utiliser pour un projet 
     90réel. Nous vous encourageons à copier/coller des bouts de code ou de voler des morceaux 
     91entiers. 
    10592 
    10693Le Projet 
     
    10895 
    10996L'application qui va être conçue aurait pu être encore un autre moteur de blog. 
    110 Mais nous voulons utiliser symfony pour un projet utile. L'objectif est de 
    111 montrer que symfony peut être utilisé pour développer des applications 
    112 professionnelles avec du style et le moindre effort. 
     97Mais nous voulons utiliser symfony pour un projet utile. L'objectif est de montrer 
     98que symfony peut être utilisé pour développer des applications professionnelles avec du style 
     99et peu d'effort. 
    113100 
    114101Nous conserverons le contenu du projet secret jusqu'au prochain jour car nous 
     
    116103**Jobeet**. 
    117104 
    118 Au menu aujourd'hui
     105Qu'allons nous faire aujourd'hui
    119106-------------------- 
    120107 
    121 Comme 24 heures représente un temps suffisant pour développer une application 
    122 avec symfony, nous n'écrirons pas de code aujourd'hui. Mais même sans écrire une 
    123 ligne de code, vous allez commencer à comprendre les bénéfices de l'utilisatio
    124 d'un framework comme symfony seulement en mettant en place un nouveau projet. 
    125  
    126 L'objectif du jour est d'installer l'environnement de développement et 
    127 d'afficher une page de l'application dans un navigateur. Cela demande 
    128 d'installer symfony, de créer une application, et de configurer un serveur web. 
    129  
    130 Pré requis 
     108Comme 24 heures représentent un temps suffisant pour développer une application avec symfony, nous n'écrirons 
     109pas de code PHP aujourd'hui. Mais même sans écrire une ligne de code, vous allez 
     110commencer à comprendre les bénéfices de l'utilisation d'un framework comme symfony seulement e
     111mettant en place un nouveau projet. 
     112 
     113L'objectif du jour est d'installer l'environnement de développement et d'afficher 
     114une page de l'application dans un navigateur. Cela demande d'installer 
     115symfony, de créer une application, et de configurer un serveur web. 
     116 
     117Prérequis 
    131118--------- 
    132119 
    133120Avant tout, vérifiez que vous avez un environnement de développement web avec 
    134 un serveur web ( Apache par exemple ), un moteur de base de données ( Mysql, 
    135 PostgreSQL, SQLite), et PHP dans sa version 5.2.4 ou supérieure. 
    136  
    137 Comme nous utilisons beaucoup la ligne de commande, il est préférable 
    138 d'utiliser un Unix-like OS. Si vous utilisez un système Windows, cela 
    139 fonctionnera également, vous devrez seulement taper quelques commandes dans la 
    140 fenêtre `cmd`. 
     121un serveur web (Apache par exemple), un moteur de base de données (Mysql, PostgreSQL, 
     122SQLite), et PHP dans sa version 5.2.4 ou supérieure. 
     123 
     124Comme nous utilisons beaucoup la ligne de commande, il est préférable d'utiliser un Unix-like OS. 
     125Si vous utilisez un système Windows, cela fonctionnera également, vous devrez seulement taper 
     126quelques commandes à l'invite de `cmd`. 
    141127 
    142128>**Note** 
    143 >Les commandes shell Unix sont pratiques dans un environnement Windows
    144 >Si vous voulez utilisez des outils comme `tar`, `gzip`, ou `grep` dans Windows 
    145 >vous pouvez installer [Cygwin](http://cygwin.com/). La documentation officielle 
    146 >est un peut petite, mais un bon guide d'installation est disponible 
     129>Les commandes shell Unix sont pratiques dans un environnement ~Windows~
     130>Si vous voulez utiliser des outils comme `tar`, `gzip`, ou `grep` dans Windows, 
     131>vous pouvez installer [Cygwin](http://cygwin.com/). La documentation officielle est un peu 
     132>petite, mais un bon guide d'installation est disponible 
    147133>[ici](http://www.soe.ucsc.edu/~you/notes/cygwin-install.html). 
    148 >Les aventuriers pourront essayer  
    149 >[Windows Services for Unix](http://technet.microsoft.com/en-gb/interopmigration/bb380242.aspx). 
    150 >de Microsoft. 
    151  
    152 Comme ce tutoriel se concentre plus particulièrement sur le framework symfony, 
    153 nous considérerons que vous disposez déjà d'un solide bagage en PHP5 et programmation 
    154 Orientée Objet. 
    155  
    156 L'installation de Symfony 
     134>Les aventureux pourront essayer les 
     135>[Windows Services for Unix](http://technet.microsoft.com/en-gb/interopmigration/bb380242.aspx) de Microsoft. 
     136 
     137Comme ce tutoriel se concentre plus particulièrement sur le framework symfony, nous considérerons que 
     138vous disposez déjà d'un solide bagage en PHP5 et programmation Orientée Objet. 
     139 
     140L'installation de symfony 
    157141------------------------- 
    158142 
    159 Premièrement, créer un répertoire pour enregistrer les fichiers du projet Jobeet 
    160 
     143Premièrement, créer un répertoire pour enregistrer les fichiers du projet Jobeet : 
    161144 
    162145    $ mkdir -p /home/sfprojects/jobeet 
    163146    $ cd /home/sfprojects/jobeet 
    164147 
    165 Pour Windows: 
     148Sous Windows: 
    166149 
    167150    c:\> mkdir c:\development\sfprojects\jobeet 
    168151    c:\> cd c:\development\sfprojects\jobeet 
    169152 
    170 >**Note**: Nous conseillons aux utilisateurs de windows de faire fonctionner 
    171 >symfony et d'installer leur nouveau projet dans un chemin qui ne contient pas 
    172 >d'espaces. 
    173 >Éviter d'utiliser le dossier `Documents and Settings` et `My Documents` 
    174  
    175 Créer un répertoire pour enregistrer les fichiers de la librairie du framework 
    176 symfony : 
     153>**Note**: Nous conseillons aux utilisateurs de Windows de faire fonctionner symfony et d'installer leur nouveau 
     154>projet dans un chemin qui ne contient pas d'espaces. 
     155>Éviter d'utiliser le dossier `Documents and Settings` et 
     156>`Mes Documents`. 
     157 
     158Créer un répertoire pour enregistrer les fichiers de la librairie du framework symfony : 
    177159 
    178160    $ mkdir -p lib/vendor 
    179161 
    180 Pour installer symfony, télécharger le [paquet de 
    181 l'archive](http://www.symfony-project.org/installation/1_2) sur le site de 
    182 symfony. Le tutorial est écrit pour symfony version 1.2, télécharger le dernière version 
    183 de l'archive pour cette version. 
    184  
    185 En dessous de la section "Source Download" vous trouverez l'archive au format 
     162La [page d'installation](http://www.symfony-project.org/installation) sur le 
     163site de symfony liste et compare toutes les versions disponibles de symfony. 
     164 
     165Comme le tutoriel est écrit pour symfony version 1.2, 
     166aller à la page d'installation pour 
     167[symfony 1.2](http://www.symfony-project.org/installation/1_2). 
     168 
     169En dessous de la section "**Source Download**", vous trouverez l'archive au format 
    186170`tgz` ou `.zip`. Téléchargez l'archive et mettez la dans le dossier `lib/vendor` 
    187171fraîchement créée, puis décompressez la. 
    188172 
    189173    $ cd lib/vendor 
    190     $ tar zxpf symfony-1.2-latest.tgz 
    191     $ mv symfony-1.2.0 symfony 
    192  
    193 Avec Windows dézipper l'archive zip peut être fait avec l'explorateur. Après 
    194 avoir renommé le répertoire par `symfony`, vous devriez avoir un répertoire 
    195 nommé `c:\development\sfprojects\jobeet\lib\vendor\symfony`. 
     174    $ tar zxpf symfony-1.2.2.tgz 
     175    $ mv symfony-1.2.2 symfony 
     176    $ rm symfony-1.2.2.tgz 
     177 
     178Sous Windows, la décompression du fichier zip peut être fait avec l'explorateur. Après 
     179avoir renommé le répertoire en `symfony`, vous devriez avoir un répertoire nommé 
     180`c:\development\sfprojects\jobeet\lib\vendor\symfony`. 
    196181 
    197182Comme la configuration de PHP varie d'une distribution à une autre, nous devons 
    198 vérifier que votre configuration répond aux exigences minimum de symfony. 
     183vérifier que votre configuration PHP répond aux exigences minimums de symfony. 
    199184Exécutez le script de vérification de configuration fournit avec symfony à 
    200185partir de la ligne de commande : 
     
    203188    $ php lib/vendor/symfony/data/bin/check_configuration.php 
    204189 
    205 S'il y a un problème, la sortie vous donnera les conseils pour le résoudre. 
    206 Comme la configuration de PHP peut être différente vous pouvez également 
    207 exécuter le script à partir d'un navigateur. Copier le script quelque part sous 
    208 la racine web de votre serveur web et appeler le fichier. N'oubliez pas 
    209 d'enlever le fichier par la suite. 
    210  
    211 ![Configuration check](http://www.symfony-project.org/images/jobeet/1_2/01/configuration_check.png) 
     190S'il y a un problème, la sortie vous donnera les conseils pour le résoudre. Vous 
     191devez également exécuter la vérification à partir d'un navigateur car la configuration PHP peut être 
     192différente. Copiez le fichier quelque part dans le répertoire racine du serveur web et 
     193accédez au fichier. N'oubliez pas de supprimer le fichier à partir du répertoire racine 
     194web après: 
     195 
     196    $ rm web/check_configuration.php 
     197 
     198![Vérification de la configuration](http://www.symfony-project.org/images/jobeet/1_2/01/configuration_check.png) 
    212199 
    213200Si le script n'affiche aucune erreur, vérifiez que symfony est installé 
    214 correctement en utilisant la ligne de commande de symfony pour afficher s
    215 version ( la lettre `V` en majuscule ) :  
     201correctement en utilisant la ~ligne de commande|Ligne de Commande~ de symfony pour afficher l
     202version (notez `V` en majuscule) :  
    216203 
    217204    $ php lib/vendor/symfony/data/bin/symfony -V 
    218205 
    219 Pour Windows: 
     206Sous Windows: 
    220207 
    221208    c:\> cd ..\.. 
     
    223210 
    224211Si vous êtes curieux et que vous voulez voir ce que la ligne de commande peut 
    225 faire pour vous, tapez `symfony` pour lister les options et tâches disponibles : 
     212faire pour vous, tapez `symfony` pour lister les options et les tâches disponibles : 
    226213 
    227214    $ php lib/vendor/symfony/data/bin/symfony 
    228215 
    229 Pour Windows: 
     216Sous Windows: 
    230217 
    231218    c:\> php lib\vendor\symfony\data\bin\symfony 
    232219 
    233 La ligne de commande symfony est le meilleur ami du développeur. Elle fournit un 
     220La ligne de commande symfony est la meilleure amie du développeur. Elle fournit un 
    234221ensemble d'utilitaire qui augmente votre productivité pour vos activités de tous 
    235 les jours comme effacer le cache, générer du code, et beaucoup plus encore.  
     222les jours comme vider le cache, générer du code, et beaucoup plus encore.  
    236223 
    237224Installation du Projet 
     
    240227Dans symfony les **applications** partagent le même modèle de données et sont 
    241228regroupées par **projets**. Pour le projet Jobeet nous aurons deux applications 
    242 différentes : une nommée frontend et l'autre backend
     229différentes : une nommée ~frontend|Frontend~ et l'autre ~backend|Backend~
    243230 
    244231### Création du Projet 
     
    249236    $ php lib/vendor/symfony/data/bin/symfony generate:project jobeet 
    250237 
    251 Pour Windows: 
     238Sous Windows: 
    252239 
    253240    c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet 
    254241 
    255 La tâche `generate:project` génère la structure par défaut des répertoires et 
     242La tâche `generate:project` génère la ~structure|Structure~ par défaut des répertoires et 
    256243crée les fichiers nécessaires d'un projet symfony. 
    257244 
     
    272259>structure par défaut des fichiers et répertoires de symfony, n'importe quel 
    273260>développeur connaissant symfony peut reprendre n'importe quel projet symfony. 
    274 >En quelques minutes, il sera à même de naviguer dans le code, de fixer les 
    275 >bogues, et d'ajouter de nouvelles fonctionnalités.  
    276  
    277 La tâche `generate:project` a également crée un raccourci `symfony` à la racine 
     261>En quelques minutes, il sera à même de naviguer dans le code, de corriger les 
     262>bogues, et d'ajouter de nouvelles fonctionnalités. 
     263 
     264La tâche `generate:project` a également créé un raccourci `symfony` à la racine 
    278265du projet Jobeet pour faciliter l'écriture de la commande lorsque vous exécutez 
    279266une tâche. 
    280267 
    281 À partir de maintenant, au lieu d'utiliser le chemin complet pour executer la 
     268À partir de maintenant, au lieu d'utiliser le chemin complet pour exécuter la 
    282269commande symfony, nous utiliserons le raccourci `symfony`. 
    283270 
     
    286273Créez l'application frontend en exécutant la tâche `generate:app` : 
    287274 
    288     $ php symfony generate:app --escaping-strategy=on --csrf-secret=Unique$ecret frontend 
     275    $ php symfony generate:app --escaping-strategy=on 
     276      ➥ --csrf-secret=UniqueSecret frontend 
    289277 
    290278>**TIP** 
    291 >Le fichier symfony est executable, les utilisateurs Unix peuvent remplacer 
    292 >chaque occurrence 'php symfony' par './symfony' dès maintenant. 
    293 > 
    294 > Pour windows vous pouvez copier le fichier 'symfony.bat' dans votre projet et 
    295 > utiliser 'symfony' à la place de 'php symfony'
     279>Comme le raccourci symfony est exécutable, les utilisateurs Unix peuvent remplacer 
     280>chaque occurrence '`php symfony`' par '`./symfony`' dès maintenant. 
     281> 
     282>Pour Windows vous pouvez copier le fichier '`symfony.bat`' dans votre projet et 
     283>utiliser '`symfony`' à la place de '`php symfony`'
    296284> 
    297285>     c:\> copy lib\vendor\symfony\data\bin\symfony.bat . 
    298286 
    299 Une fois de plus, la tâche `generate:app` crée la structure par défaut des 
    300 répertoires de l'application dans le dossier `apps/frontend`. 
    301  
    302  | Directory  | Description 
    303  | ---------- | ----------------------------------------------- 
    304  | config/    | Les fichiers de configuration de l'application 
    305  | lib/       | Les librairies et classes de l'application 
    306  | modules/   | Le code de l'application ( MVC ) 
    307  | templates/ | Les gabarits principaux 
     287Basé sur le nom de l'application donnée comme *argument*, la tâche `generate:app` 
     288crée la structure de répertoire par défaut nécessaire à l'application sous le 
     289répertoire `apps/frontend` : 
     290 
     291 | Répertoire  | Description 
     292 | ----------- | ----------------------------------------------- 
     293 | config/     | Les fichiers de configuration de l'application 
     294 | lib/        | Les librairies et classes de l'application 
     295 | modules/    | Le code de l'application (MVC) 
     296 | templates/  | Les Templates principaux 
    308297 
    309298>**TIP** 
     
    314303pour la sécurité : 
    315304 
    316   * `--escaping-strategy`: Active les échappements pour prévenir des attaques XSS 
    317   * `--csrf-secret`: Active les jetons de sessions des formulaires pour prévenir 
    318 des attaques CSRF 
     305  * `--escaping-strategy`: Active les échappements pour prévenir des attaques ~XSS~ 
     306  * `--csrf-secret`: Active les jetons de sessions des formulaires pour prévenir des attaques ~CSRF~ 
    319307 
    320308En passant ces deux options à la tâche, nous avons sécurisé notre futur 
    321309développement des deux plus courantes vulnérabilités trouvées sur le web. 
    322 C'est bien, symfony va automatiquement prendre les mesures de sécurité pour 
     310C'est bien, symfony va automatiquement prendre les mesures de ~sécurité|Sécurité~ pour 
    323311nous. 
    324312 
    325313>**NOTE** 
    326314>Si vous ne connaissez pas 
    327 >[XSS](http://fr.wikipedia.org/wiki/Cross-site_scripting) ou  
    328 >[CSRF](http://fr.wikipedia.org/wiki/Cross-Site_Request_Forgeries), prenez le temps d'apprendre un peu 
     315>[XSS](http://fr.wikipedia.org/wiki/Cross-site_scripting) ou 
     316>[CSRF](http://en.wikipedia.org/wiki/CSRF), prenez le temps d'apprendre un peu 
    329317>plus sur ces failles de sécurité. 
    330318 
     
    336324 
    337325L'option `V` affiche également le chemin vers le répertoire d'installation de 
    338 symfony, que vous retrouvez également dans le fichier `config/ProjectConfiguration.class.php`
     326symfony, que vous retrouvez également dans le fichier `config/ProjectConfiguration.class.php`
    339327 
    340328    [php] 
     
    342330    require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php'; 
    343331 
    344 Pour une meilleur portabilité du projet, changez le chemin absolu de 
     332Pour une meilleure portabilité du projet, changez le chemin absolu de 
    345333l'installation de symfony par un chemin relatif : 
    346334 
     
    352340machine ou sur une autre, cela fonctionnera toujours. 
    353341 
    354 Les environnements 
    355 -------------------- 
    356  
    357 Si vous jetez un œil au répertoire `web/`, vous trouvez deux fichiers PHP : 
    358 `index.php` et `frontend_dev.php`. Ces fichiers sont appelés **front 
    359 controllers** : toutes les requêtes vers l'application sont faites en passant 
    360 par eux. Mais pourquoi avons-nous 2 front controllers alors que nous n'avons 
    361 qu'une seule application ? 
    362  
    363 Les deux fichiers pointent sur la même application mais en utilisant deux 
    364 environnements différents. Lorsque vous développez une application, sauf si 
    365 vous développez directement sur le serveur de production, vous avez besoin de 
    366 plusieurs environnements. 
    367  
    368   * **L'environnement de développement** : c'est l'environnement utilisé par 
    369     **les développeurs** pour ajouter de nouvelles fonctionnalités, fixer les 
    370     bogues... 
    371   * **L'environnement de tests** : c'est l'environnement pour tester 
    372     automatiquement l'application. 
    373   * **L'environnement de recette** : c'est l'environnement utilisé par le 
    374     **client** pour tester l'application et faire un retour sur les bogues ou 
    375     les fonctionnalités manquantes. 
    376   * **L'environnement de production** : c'est l'environnement utilisé par 
    377     **l'utilisateur final** 
    378  
    379 Qu'est-ce qui fait qu'un environnement est unique ? Dans l'environnement de 
    380 développement, l'application doit 'loguée' tous les détails d'une requête pour 
    381 faciliter le 'débugage', elle doit également afficher les exceptions dans le 
    382 navigateur, mais le système de cache doit être désactivé car les changements 
    383 dans le code doivent être pris en compte de suite. Donc l'environnement de 
    384 développement doit être optimisé pour le développeur: 
    385  
    386 ![Une exception dans l'environnement de développement](http://www.symfony-project.org/images/jobeet/1_2/01/exception_dev.png) 
    387  
    388 Par contre dans l'environnement de production, l'application doit afficher des 
    389 messages d'erreur adaptés à la place d'exceptions PHP, et bien sûr, le cache 
    390 doit être activé. Donc l'environnement de production doit être optimisé pour 
    391 la performance et l'expérience utilisateur. 
    392  
    393 ![Une exception dans l'environnement de production](http://www.symfony-project.org/images/jobeet/1_2/01/exception_prod.png) 
    394  
    395 Dans symfony un environnement est un jeu unique de paramètres de configuration 
    396 et symfony est installé avec trois d'entre eux : `dev`, `test`, et `prod`. 
    397  
    398 Si vous ouvrez les fichiers de front controllers, vous verrez que la seule 
    399 différence est le paramètre d'environnement : 
     342Les ~environnements~ 
     343------------------ 
     344 
     345Si vous regarder le répertoire `web/`, vous trouverez deux fichiers PHP : 
     346`index.php` et `frontend_dev.php`. Ces fichiers sont appelés **~contrôleurs 
     347frontaux|Contrôleurs Frontaux~**; toutes les requêtes de l'application 
     348se font par leur intermédiaire. Mais pourquoi nous avons deux contrôleurs frontaux alors que nous avons 
     349qu'une application ? 
     350 
     351Les deux fichiers pointent sur la même application mais pour des environnements différents. 
     352Lorsque vous développez une application, sauf si vous développez directement sur le 
     353serveur de production, vous avez besoin de plusieurs **environnements** : 
     354 
     355  * L'**environnement de développement** : C'est l'environnement utilisé par les **développeurs 
     356    Web** quand ils travaillent sur l'application pour ajouter de nouvelles fonctionnalités, corriger 
     357    des bugs, ... 
     358  * L'**environnement de test** : Cet environnement est utilisé pour tester automatiquement 
     359    l'application. 
     360  * L'**environnement de qualité** : Cet environnement est utilisé par le **client** 
     361    pour tester l'application et les bogues ou les fonctionnalités manquantes. 
     362  * L'**environnement de production** : C'est l'environnement où interagissent les 
     363    **utilisateurs finaux** 
     364 
     365Qu'est ce qui rend un environnement unique ?  Dans l'environnement de développement par exemple, 
     366l'application doit se connecter à tous les détails d'une requête afin de faciliter 
     367le débogage, mais le système de cache doit être désactivé de façon que tous les changements apportés 
     368au code soient pris en compte sans tarder. Ainsi, l'environnement de développement 
     369doit être optimisé pour le développeur. Le meilleur exemple est certainement lorsqu'une 
     370~exception|Exception~ se produit. Pour aider le développeur à déboguer le problème plus rapidement, symfony 
     371affiche l'exception avec toutes les informations qu'elle a sur la requête 
     372courante dans le navigateur : 
     373 
     374![Une exception dans l'environnement de dev](http://www.symfony-project.org/images/jobeet/1_2/01/exception_dev.png) 
     375 
     376Par contre sur l'environnement de production, la couche du cache doit être activé, et 
     377bien entendu, l'application doit afficher les messages d'erreurs à la place des 
     378exceptions. Ainsi, l'environnement de production doit être optimisé pour la performance 
     379et l'expérience utilisateur. 
     380 
     381![Une exception dans l'environnement de prod](http://www.symfony-project.org/images/jobeet/1_2/01/exception_prod.png) 
     382 
     383Un environnement de symfony est un ensemble unique de paramètres de configuration. Le framework 
     384symfony est livré avec trois d'entre eux : `dev`, `test`, et `prod`. Durant 
     385la journée 22, vous apprendrez à créer de nouveaux environnements, comme celle de `staging`. 
     386 
     387Si vous ouvrez les fichiers des contrôleurs frontaux, vous verrez que leur contenu est 
     388le même, sauf pour la configuration de l'environnement : 
    400389 
    401390    [php] 
     
    405394    require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php'); 
    406395 
    407     $configuration = 
    408     ➥ ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false); 
     396    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false); 
    409397    sfContext::createInstance($configuration)->dispatch(); 
    410398 
    411399>**NOTE** 
    412 >Définir un nouvel environnement dans symfony est aussi simple que de créer un 
    413 >nouveau front controller. Nous verrons plus tard comment modifier les 
    414 >paramètres pour un environnement. 
     400>La définition d'un nouvel environnement de symfony est aussi simple que la création d'un nouveau contrôleur 
     401>frontal. Nous verrons plus tard comment modifier les paramètres d'un 
     402>environnement. 
    415403 
    416404Configuration du serveur web : la pire méthode 
    417 ---------------------------------------------- 
     405------------------------------ 
    418406 
    419407Dans la section précédente, un répertoire a été créée pour héberger le projet 
     
    421409serveur, vous pouvez dès à présent y accéder par un navigateur. 
    422410 
    423 Bien sûr comme cela vous n'avez rien à configurer, c'est très rapide à 
    424 installer, mais essayer d'accéder au ficher `config/databases.yml` à partir du 
    425 navigateur pour comprendre les mauvaises conséquences que peuvent avoir une 
    426 attitude de paresseux.  
     411Bien sûr comme cela vous n'avez rien à configurer, c'est très rapide à installer, mais essayer 
     412d'accéder au ficher `config/databases.yml` à partir de votre navigateur pour comprendre les 
     413mauvaises conséquences que peuvent avoir une attitude de paresseux. Si l'utilisateur sait que votre 
     414site est développé avec symfony, il aura accès à un grand nombre de fichiers 
     415sensibles. 
    427416 
    428417**Ne jamais utiliser cette installation sur un serveur de production** et lisez 
     
    430419 
    431420Configuration du server web : la méthode sécurisée 
    432 -------------------------------------------------- 
     421-------------------------------- 
    433422 
    434423Une bonne pratique pour le web est de mettre seulement sous la racine web les 
     
    438427 
    439428Si vous regardez ce répertoire, vous trouverez des sous-répertoires avec les 
    440 éléments cités ci-dessus et les deux fichiers de front controller. Les front 
    441 controllers sont les seuls fichiers PHP qui doivent être sous la racine web. 
     429éléments cités ci-dessus et les deux fichiers des contrôleurs frontaux. Les contrôleurs 
     430frontaux sont les seuls fichiers PHP qui doivent être sous la racine web. 
    442431Tous les autres fichiers PHP doivent être inaccessible par un navigateur, ce qui 
    443432est une bonne idée notamment pour la sécurité. 
     
    451440lignes à la fin : 
    452441 
    453     # soyez certain de n'avoir cette ligne qu'une seule fois dans votre fichier 
     442    # Soyez certain de n'avoir cette ligne qu'une seule fois dans votre fichier 
    454443    NameVirtualHost 127.0.0.1:8080 
    455444 
     
    474463>**NOTE**: l'alias `/sf` vous donne accès aux images et fichiers Javascript 
    475464>nécessaires au bon affichage des pages par défaut de symfony et de la barre 
    476 >d'outils web de débugage ( web degug toolbar
    477 > 
    478 >Pour windows, vous devez remplacer la ligne `Alias` avec quelque chose comme : 
     465>d'outils web de débogage (web debug toolbar
     466> 
     467>Pour Windows, vous devez remplacer la ligne `Alias` avec quelque chose comme : 
    479468> 
    480469>     Alias /sf "c:\development\symfony\data\web\sf" 
     
    493482 
    494483>**SIDEBAR** 
    495 >Configurer un nom de domaine dédié à Jobeet 
    496 > 
    497 > Si vous êtes l'administrateur de votre machine, c'est une meilleure pratique 
    498 > que d'utiliser les virtual host à la place d'un nouveau port pour chaque 
    499 > nouveau projet. Plutôt que d'utiliser un port et d'insérer une directive 
    500 > `Listen`, choisissez un nom de domaine et ajouter une directive `ServerName` : 
     484>Configurer un ~nom de domaine~ dédié à Jobeet 
     485> 
     486>Si vous êtes un administrateur sur votre machine, il est préférable de configurer 
     487>des ~serveurs virtuels|Serveurs Virtuels~ plutôt que d'ajouter un nouveau port à chaque fois que vous 
     488>démarrez un nouveau projet. Au lieu de choisir un port et d'ajouter une déclaration `Listen`, choisissez 
     489>un nom de domaine et ajoutez une instruction `ServerName` : 
    501490> 
    502491>     # Configuration pour Jobeet 
     
    506495>     </VirtualHost> 
    507496> 
    508 > Le nom de domaine `jobeet.localhost` doit être déclaré localement. Si vous 
    509 > utilisez un système Linux, vous devez le faire dans le fichier `/etc/hosts`. 
    510 > Si vous utilisez Windows XP, ce fichier est situé dans le répertoir
    511 > `C:\WINDOWS\system32\drivers\etc\`. 
    512 > 
    513 >Ajoutez ces lignes
     497>Le nom de domaine `jobeet.localhost` utilisé dans la configuration d'Apache doit être 
     498déclaré localement. Si vous utilisez un système Linux, vous devez le faire dans le 
     499>fichier `/etc/hosts`. Si vous utilisez Windows XP, ce fichier est situé dans l
     500>répertoire `C:\WINDOWS\system32\drivers\etc\`. 
     501> 
     502>Ajoutez la ligne suivante
    514503> 
    515504>     127.0.0.1         jobeet.localhost 
     
    522511que vous avez choisi dans les sections précédentes. 
    523512 
    524 ![Congratulations](http://www.symfony-project.org/images/jobeet/1_2/01/congratulations.png) 
    525  
    526 >**Note**: Si vous avez installé le module d'Apache `mod_rewrite` vous n'avez 
    527 >pas besoin d'utiliser /index.php/ dans les URLs. 
     513![Félicitations](http://www.symfony-project.org/images/jobeet/1_2/01/congratulations.png) 
     514 
     515>**Note**: Si vous avez installé le module d'Apache ~`mod_rewrite`|`mod_rewrite` (Apache)~ 
     516>vous pouvez supprimer la partie `index.php/` dans l'URL. Ceci est 
     517>possible grâce à la réécriture des règles configurées dans le 
     518fichier `web/~.htaccess|.htaccess (Apache)~`. 
    528519 
    529520Vous pouvez également essayer d'accéder à l'environnement de développement de 
     
    532523    http://jobeet.localhost/frontend_dev.php/ 
    533524 
    534 La barre d'outils web de débugage ( the web debug toolbar ) doit être présente 
    535 en haut dans le coin droit de votre navigateur, incluant de petites icônes. 
    536 C'est la preuve que votre alias de configuration `sf/` est correct. 
    537  
    538 ![web debug toolbar](http://www.symfony-project.org/images/jobeet/1_2/01/web_debug_toolbar.png) 
     525La barre d'outils web de débogage doit être présente en haut dans le coin droit, incluant de petites 
     526icônes. C'est la preuve que votre alias de configuration `sf/` est correct. 
     527 
     528![La barre d'outils web de débogage](http://www.symfony-project.org/images/jobeet/1_2/01/web_debug_toolbar.png) 
     529 
     530La ~barre d'outils web de débogage|Barre d'Outils Web de Débogage~ est présente sur toutes les pages dans 
     531l'environnement de développement et vous donne accès à un grand nombre d'informations en cliquant 
     532sur les différents onglets : la configuration de l'application actuelle, les journaux pour 
     533la requête actuelle, les instructions SQL exécutées sur le moteur de la base de données, les informations 
     534sur la mémoire et l'information du temps. 
    539535 
    540536>**Note** 
    541 >L'installation est un petit peu différente si vous voulez exécuter symfony à 
    542 >partir d'un serveur IIS dans un environnement windows. Vous trouverez comment 
    543 >le configurer dans ce [tutorial](http://www.symfony-project.com/cookbook/1_0/web_server_iis). 
    544  
    545 Subversion 
    546 ---------- 
    547  
    548 C'est une bonne pratique d'utiliser un système de gestion de version de code 
    549 source lorsque vous développez une application web. Cela vous permet : 
    550   
    551  * travaillez en confiance 
    552  * retournez à une version précédente si un changement a cassé quelque chose 
    553  * à plus d'une personne de travaillez efficacement sur le projet 
    554  * d'accéder aux versions successives de l'application 
    555  
    556 Dans cette section nous décrivons comment utiliser 
    557 [Subversion](http://subversion.tigris.org/) avec symfony. Si vous utilisez un 
    558 autre outils que subversion, il sera facile d'adapter ce que nous décrivons pour 
    559 Subversion. 
    560  
    561 Nous supposons que vous avez déjà accès à un serveur Subversion. 
     537>L'installation est un petit peu différente si vous voulez exécuter symfony à partir d'un serveur IIS 
     538>dans un environnement Windows. Vous trouverez comment le configurer dans ce 
     539>[tutoriel](http://www.symfony-project.com/cookbook/1_0/web_server_iis). 
     540 
     541~Subversion~ 
     542------------ 
     543 
     544C'est une bonne pratique d'utiliser le contrôle de version des sources lors du développement 
     545d'une application web. En utilisant un contrôle de version des sources, cela nous permet de : 
     546 
     547 * travailler en toute confiance 
     548 * revenir à une version précédente si un changement casse quelquechose 
     549 * permettre à plusieurs personnes de travailler efficacement sur le projet 
     550 * avoir accès à toutes les versions successives de l'application 
     551 
     552Dans cette section, nous décrirons comment utiliser 
     553[Subversion](http://subversion.tigris.org/) avec symfony. Si vous utilisez un autre 
     554outil de contrôle de code source, il doit être assez facile d'adapter ce que nous décrivons 
     555pour Subversion. 
     556 
     557Nous supposons que vous avez déjà accès à un serveur Subversion et que vous pouvez y accéder 
     558via HTTP. 
    562559 
    563560>**TIP** 
    564 >Si vous n'avez pas de serveur Subversion à votre disposition, vous pouvez en 
    565 >créer un gratuitement sur [Google Code](http://code.google.com/hosting/) ou 
    566 >seulement chercher "free subversion repository" dans Google pour avoir plus de 
    567 >choix. 
    568  
    569 Premièrement créer un nouveau dépôt pour le projet `jobeet` : 
    570  
    571     $ svnadmin create http://svn.example.com/jobeet 
    572     $ svn mkdir -m "created default directory structure" 
     561>Si vous ne disposez pas d'un serveur Subversion à votre disposition, vous pouvez créer un 
     562>dépôt gratuit sur [Google Code](http://code.google.com/hosting/) ou 
     563>tapez simplement "free subversion repository" dans Google pour avoir beaucoup plus d'options. 
     564 
     565Tout d'abord, créer un dépôt pour le projet jobeet sur le serveur de dépôt : 
     566 
     567    $ svnadmin create /path/to/jobeet/repository 
     568 
     569Sur votre machine, créez la structure de répertoires de base : 
     570 
     571    $ svn mkdir -m "creer la structure de repertoires par defaut" 
    573572    ➥ http://svn.example.com/jobeet/trunk 
    574573    ➥ http://svn.example.com/jobeet/tags 
    575574    ➥ http://svn.example.com/jobeet/branches 
    576575 
    577 Ensuite enlevez le contenu des répertoires `cache/` et `log/` car nous ne 
    578 voulons pas les insérer dans le dépôt. 
     576Et faites un checkout du répertoire vide `trunk/` : 
    579577 
    580578    $ cd /home/sfprojects/jobeet 
    581     $ rm -rf cache/* 
    582     $ rm -rf log/* 
    583  
    584 Maintenant, appliquez les bons droits d'écritures aux répertoires cache et log 
    585 pour que votre serveur web puisse écrire dedans : 
    586  
    587     $ chmod 777 cache 
    588     $ chmod 777 log 
    589  
    590 Ensuite faites le premier import : 
    591  
    592     $ svn import -m "made the initial import" . 
    593     ➥ http://svn.example.com/jobeet/trunk 
    594  
    595 Comme nous ne voulons jamais commiter les fichiers situés dans les répertoires 
    596 `cache/` et `/log`, nous spécifions une liste 'ignore' : 
     579    $ svn co http://svn.example.com/jobeet/trunk/ . 
     580 
     581Ensuite, supprimez le contenu des répertoires `cache/` et `log/` car nous ne 
     582voulons pas les mettre dans le dépôt. 
     583 
     584    $ rm -rf cache/* log/* 
     585 
     586Maintenant, assurez-vous de mettre les permissions d'écriture sur les répertoires du cache et des journaux 
     587aux niveaux appropriés afin que votre serveur web puisse écrire dedans : 
     588 
     589    $ chmod 777 cache/ log/ 
     590 
     591Maintenant, importer tous les fichiers et répertoires : 
     592 
     593    $ svn add * 
     594 
     595Comme nous ne voudrons jamais faire de commit des fichiers situés dans les répertoires 
     596`cache/` et `log/`, vous devez spécifier une liste à ignorer : 
    597597 
    598598    $ svn propedit svn:ignore cache 
    599599 
    600 L'éditeur de texte par défaut pour SVN doit être lancé. Subversion doit ignorer 
    601 tout le contenu de ce répertoire 
     600L'éditeur de texte par défaut configuré dans SVN devrait se lancer. Subversion doit 
     601ignorer tout le contenu de ce répertoire : 
    602602 
    603603    * 
    604604 
    605 Sauvez et quitter. C'est fait
    606  
    607 Faites la même procédure pour le répertoire `log/` : 
     605Sauvegardez et quittez. Vous avez terminé
     606 
     607Répétez la procédure pour le répertoire `log/` : 
    608608 
    609609    $ svn propedit svn:ignore log 
    610610 
    611 Et saisissez : 
     611Et entrez : 
    612612 
    613613    * 
    614614 
    615 Pour finir, commiter les derniers changements au dépôt : 
    616  
    617     $ svn commit -m "added cache/ and log/ content in the ignore list" 
     615Enfin, valider ces modifications dans le dépôt : 
     616 
     617    $ svn import -m "fait l import initial" . 
     618      ➥ http://svn.example.com/jobeet/trunk 
    618619 
    619620>**Tip** 
    620 >Les utilisateurs windows peuvent utiliser le client 
    621 >[TortoiseSVN](http://tortoisesvn.tigris.org/) pour gérer leur dépôt subversion. 
    622  
    623 
    624  
    625 >**Note** 
    626 >Le dépôt Jobeet SVN sera public jour après jour. 
    627 
    628 >Donc, tant que le dépôt entier n'est pas public (`http://svn.jobeet.org/`), 
    629 >pour aujourd'hui le code a été commité et taggué. 
    630 
    631 >Vous pouvez faire un checkout de `release_day_01`: 
    632 
    633 >       $ svn co http://svn.jobeet.org/tags/release_day_01/ jobeet/ 
     621>Les utilisateurs de ~Windows~ peuvent utiliser l'excellent client [TortoiseSVN](http://tortoisesvn.tigris.org/) 
     622pour gérer leur dépôt Subversion. 
    634623 
    635624A demain 
     
    638627Bien, c'est fini pour aujourd'hui ! Même si nous n'avons pas encore parlé de 
    639628symfony, nous avons installé un environnement de développement solide, nous 
    640 avons parlé des bonnes pratiques de développement web, et nous sommes prêt à 
    641 coder. 
    642  
    643 Demain nous révélerons ce que l'application fait et nous naviguerons dans 
    644 symfony. Si vous voulez rester informé avec la dernière information sur Jobeet, 
    645 n'oubliez pas de souscrire au [symfony blog 
    646 feed](http://www.symfony-project.org/blog/). 
    647  
    648  
    649 Assurez-vous de revenir demain ! 
     629avons parlé des bonnes pratiques de développement web, et nous sommes prêt à coder. 
     630 
     631Demain nous révélerons ce que l'application fait et nous parlerons des 
     632exigences que nous devons mettre en œuvre durant le tutoriel. 
     633 
     634>**Note** 
     635>Si vous souhaitez vérifier le code pour aujourd'hui, ou pour un autre jour, le code est 
     636>disponible jour après jour dans le dépôt officiel SVN  Jobeet 
     637>(`http://svn.jobeet.org/##ORM_LOWER##/`). 
     638
     639>Par exemple, vous pouvez avoir le code d'aujourd'hui en cochant la 
     640>balise `release_day_01` : 
     641
     642>       $ svn co http://svn.jobeet.org/##ORM_LOWER##/tags/release_day_01/ jobeet/ 
     643 
     644__ORM__