Symfony 2

Objectifs

Cette formation vous permet de lister et d'utiliser les fonctionnalités du framework Symfony 2 comme l'architecture MVC, la gestion des formulaires, l'authentification, le moteur de templating Twig, la sécurité, le cache HTTP, les tests unitaires, la communication avec une base de données.

Public

Développeurs web.

Durée

21 heures en présentiel sur 3 jours

Pré-requis

Connaître le PHP et le XHTML ou avoir suivi les formations PHP Initiation. Connaître la programmation orientée objet ou avoir suivi la formation Introduction à la POO.

Formateur

Formateur expérimenté spécialiste de la programmation Web.

Méthode pédagogique

8 participants maximum, un poste par stagiaire et un support de cours est remis en fin de stage. La formation est constituée d'apports théoriques, de démonstrations et de mises en pratique basées sur des exercices.

Modalité de validation des acquis

Fiche d'évaluation en ligne permettant de valider les acquis.

Déroulé

Rappel: Programmation Orientée Objet

  • Classes, objets, attributs et méthodes
  • Constructeurs, destructeurs et méthodes statiques
  • L'héritage, l'agrégation et les exceptions
  • Visibilité et espaces de nommage

Introduction à Symfony 2

  • Présentation des frameworks PHP
  • A propos de Symfony 2
  • Ressources pour Symfony

Installation et configuration de Symfony 2

  • Configuration d'Apache
  • Mise en place de l'environnement de développement
  • Installation d'une sandbox
  • Concepts de projet, d'application et de bundle
  • Configuration en PHP, XML et YAML

Les bases de Symfony 2

  • Concepts fondamentaux : requête et réponse HTTP, le routing, l'approche Modèle Vue Contrôleur (MVC)
  • Conventions de codage
  • Structure d'un projet Symfony
  • Liste des dossiers les plus utiles

Déboguer son code

  • La barre de débogage (« Web Debug Toolbar »)
  • Les logs
  • Le profilage
  • Les traces d'exception

Approche MVC de Symfony 2

  • La couche Vue : templates et helpers
  • Twig : le moteur de template de Symfony 2
  • Héritage de templates
  • Inclure un template dans un autre
  • Rendre une action depuis un template
  • Les helpers de vue (chaînes, date, url...)
  • La couche Contrôleur : classes de contrôleur et actions
  • Traitement des requêtes entrantes
  • Envoyer des données à la vue
  • Forward et redirection
  • Récupérer des informations de l'utilisateur
  • Sessions et cookies
  • La couche de Modèle : logique métier avec Doctrine 2
  • Symfony 2 et le Mapping Objet Relationnel (ORM)
  • Découverte de Doctrine2 : DBAL & ORM
  • Interagir avec une base de données relationnelle
  • Introduction à PDO (DSN, requêtes préparées, transactions...)
  • CLI : génération du modèle et de la base de données
  • DQL : requeter la base de données

Configurer une application Symfony 2

  • Comparatif des formats supportés : XML, YAML et PHP
  • Configuration globale de l'application
  • Configuration globale des URLs
  • Surcharge de la configuration dans un Bundle

Symfony 2 et les templates

  • Les templates et le moteur de templating Twig
  • Héritage et inclusion de templates
  • Inclusion d'actions
  • Déclarer et inclure des slots afin de concevoir des templates modulaires
  • Générer des URLs à l'aide des helpers

Les formulaires avec Symfony 2

  • Cheminement d'une requête HTTP avec Symfony 2
  • Découvrir le framework de formulaires
  • Mettre en place des formulaires simples
  • Préremplir des formulaires
  • Lier un formulaire à une table, à un objet
  • Valider les champs des formulaires
  • Récupérer les données d'un formulaire Symfony 2
  • Prototyper et personnaliser le rendu d'un formulaire avec Twig

Cycle de vie d’un projet sous Symfony

  • Configuration des environnements (développement, tests, production)
  • Ressources par configuration
  • Mode debug et production
  • Gestion du cache

Étendre Symfony2 et Twig

  • Configurer de nouveaux services
  • Installer de nouvelles aides de vue
  • Enrichir Twig avec des macros, fonctions et filtres
  • Installer et activer des Bundles tiers

La sécurité dans Symfony 2

  • Authentification et autorisations des utilisateurs : formulaire, http, etc.
  • Les attaques XSS : risques et protections
  • Les attaques CSRF : risques et protections
  • Se protéger contre les injection SQL

Les tests unitaires avec PHPUnit

  • Comprendre les enjeux des tests unitaires
  • Introduction et installation du framework PHPUnit 3.5
  • Configurer et exécuter une suite de tests unitaires
  • Générer des rapports de couverture de code