préface de membre de l’équipe symfony créateur de .préface • avant-propos • architecture

Download Préface de Membre de l’équipe Symfony Créateur de .Préface • Avant-propos • Architecture

Post on 28-Sep-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Prface Avant-propos ArchitectureduframeworkDbuteravecSymfonyRoutageetcontrleurLinjectionded-pendancesLestemplatesavecTwigLesbasesdedonnesavecDoctrine2Le rpartiteur dvnements Utiliserles formulaires La scurit Logginget monitoring Tester son application Symfony Amliorer les performancesdesonapplicationAnnexes

    ISBN

    : 978

    -2-40

    9-011

    72-6

    39

    Symfony 3Dveloppez des sites web PHP structurs et performants

    Bilal Amarni est consultant, dve-loppeur PHP freelance. Titulaire delacertificationSymfonyavec lamen-tion Expert, il matrise compltement larchitecture du framework ainsi queson utilisation. Dans cet ouvrage, ilpartage avec le lecteur lexpriencequilaacquiseaucoursdesesdiff-rentesmissionsetprojets.

    Prface de Jordi BOGGIANO Membre de lquipe Symfony - Crateur de Composer

    Ce livre sur Symfony 3 sadresse aux dveloppeurs, chefs de projets,directeurs techniques,quisouhaitent,grcece framework, structurer et organiser leurs dveloppementsPHPauseinduncadredetravail robusteetprofessionnel.La matrisedelaprogrammationobjetavecPHPestunprrequisindispensablepourtirerlemeilleurpartidecespages.

    LelivrecouvrelesprincipauxcomposantsdeSymfony3,consi-dr aujourdhui comme le framework PHP de rfrence. Il fournitlesconnaissances de basequipermettentnonseulementde crer un site web,maisgalementdecomprendreetmatrisersonfonctionnementendtail.Unchapitreentierestparexempleconsacrlarchitectureduframework.

    LessujetsdtaillsvontdelinstallationdeSymfonylacrationde tests unitaires et fonctionnels.Lagestiondesformulaires,desinteractionsavecunebase de donnes,destemplates,dela journalisation ou mme de la scurit de lapplication sontautantdethmesexpossdanslelivre.

    Letempsdechargementdespagesdunsitewebtantunlment crucial,unchapitredlivrelestechniquesetastucespourforte-mentamliorer les performancesduneapplication.

    Lauteurastructurleschapitrespourfaciliter lapprentissage de Symfony 3 et dvoile au fil des pages desconseils,bonnes pratiques etexemples dtaills.

    Deslments complmentaires sont en tlchargement sur lesitewww.editions-eni.fr. Pour plus dinformations :

    Symfony 3 Dveloppez des sites web PHP structurs et performants

    Bilal AMARNI

    Les chapitres du livre

    Prface de Jordi BOGGIANO Membre de lquipe Symfony Crateur de Composer

    Sym

    fony

    3D

    vel

    oppe

    z de

    s si

    tes

    web

    PH

    P

    stru

    ctur

    s e

    t per

    form

    ants

    Tlchargementwww.editions-eni.fr.fr

    Sur www.editions-eni.fr :b Codesourcedesexemples

    traitsdanslelivre.

  • 1Table des matires

    Prface

    Chapitre 1Avant-propos

    1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2. Public vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    3. Pourquoi un framework ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1 header() et echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 viter la globalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Ne pas rinventer la roue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4. Pourquoi Symfony ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    5. Prrequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    6. Objectifs du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    Chapitre 2Architecture du framework

    1. Le patron de conception MVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    1.1.1 La vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1.2 Le modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.1.3 Le contrleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    Les lments tlcharger sont disponibles l'adresse suivante :http://www.editions-eni.fr

    Saisissez la rfrence ENI de l'ouvrage EI3SYM dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton

    de tlchargement.

    lcroiseTampon
  • 2Dveloppez des sites web PHP structurs et performants

    Symfony 3

    1.2 En pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.2.1 Le contrleur frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.2.2 Le routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.2.3 Le contrleur et le modle . . . . . . . . . . . . . . . . . . . . . . . . . 301.2.4 La vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2. Architecture de Symfony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1 Schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.2 Le Service Container. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.3 Un framework MVC ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.4 Une flexibilit toute preuve . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3. Les bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.1 Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Un cosystme mature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4. Les environnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 En pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.2.1 Contexte HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2.2 Contexte CLI (Command Line Interface). . . . . . . . . . . . . 374.2.3 Exemples de diffrences selon lenvironnement . . . . . . . . 38

    Chapitre 3Dbuter avec Symfony

    1. Crer un projet sous Symfony. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1 Ldition standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.2 Prrequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.3 Installation via linstalleur Symfony (Linux et Mac OS). . . . . . 401.4 Installation via Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    1.4.1 Installer Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.4.2 Crer un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.4.3 Les versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

  • 3Table des matires

    2. Dcouvrir Symfony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1 Configurer son serveur web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    2.1.1 Serveur web PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1.2 Apache et Nginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    2.2 Structure de lapplication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    3. La console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.1 Emplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2 Les commandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    3.2.1 Lister les commandes disponibles . . . . . . . . . . . . . . . . . . . 553.2.2 Excuter une commande . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    3.3 Les options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.4 Les arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.5 La commande help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.6 Excuter rapidement des commandes . . . . . . . . . . . . . . . . . . . . . 59

    3.6.1 Les raccourcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.6.2 Lautocompltion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    4. Lautochargement des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.1 Le standard PSR-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.2 Autres mcanismes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.3 Le fichier vendor/autoload.php . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    5. Installer un bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.1 Bundle applicatif spcifique au projet . . . . . . . . . . . . . . . . . . . . . 63

    5.1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.1.2 Crer un bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    5.2 Bundle tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

  • 4Dveloppez des sites web PHP structurs et performants

    Symfony 3

    Chapitre 4Routage et contrleur

    1. Comprendre le routage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1 Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.2 Le rpertoire web e