Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Symfony 4 - Touraine Tech 2019

Symfony 4 - Touraine Tech 2019

Symfony est un framework HTTP écrit en PHP. Dans sa version 4, Symfony tire
parti des bonnes pratiques web et propose une expérience pour les développeurs
unique en son genre.

Grâce à son écosystème riche, il permet de développer rapidement une
application, en se concentrant sur la partie métier sans faire de compromis sur
la qualité du code.

Cette conférence a pour but de vous faire découvrir pourquoi Symfony est unique
et pourquoi on aime développer avec ce framework.

https://touraine.tech/

Grégoire Pineau

February 01, 2019
Tweet

More Decks by Grégoire Pineau

Other Decks in Programming

Transcript

  1. Symfony - Qu’est ce que c’est ? Symfony est un

    ensemble de composants… ... et un framework pour les projets web Pour vous aider à développer plus vite et mieux
  2. Composer - Qu’est ce que c’est ? Le gestionnaire de

    dépendances de PHP C’est l’équivalent de yarn / pip / gem • composer install • composer update • composer require
  3. Les Bundles Un bundle permet de brancher un composant ou

    une librairie tierce dans le Framework • FrameworkBundle : Le coeur du Framework • TwigBundle : Le système de vue • MonologBundle : Le système de log • DoctrineBundle : La gestion de base de donnée • …
  4. Le FrameworkBundle Il dépend entre autre de : • symfony/dependency-injection

    • symfony/event-dispatcher • symfony/http-foundation • symfony/http-kernel • symfony/routing • …
  5. Le composant HttpKernel • Le cœur de Symfony • Il

    convertit une Request HTTP en une Response HTTP • Il utilise massivement l’EventDispatcher (découplage / extensibilité) • Il délègue le traitement à des Controllers (des callables PHP) Response Envoi la Réponse Request Reçoit une Request HttpKernel Exécute un Controller
  6. Le composant Routing Configuration routes[] = [uri => /foo, …]

    routes[] = [uri => /bar, …] routes[] = [ uri => /about, controller => Callable, ... ] Request uri = /about method = GET host = example.com Router::match($request) Trouve la route associée et retourne sa configuration
  7. Le composant EventDispatcher Security Utilisateur connecté / permissions Translation Configure

    la traduction Locale Configure la locale de l’app Request Router Cherche la route
  8. Twig • Le moteur de template par défaut • Facile

    • Rapide • Très extensible • Gestion d'héritage de templates
  9. L'injection de dépendances L'injection de dépendances (dependency injection en anglais)

    est un mécanisme qui permet d'implémenter le principe de l'inversion de contrôle. Il consiste à créer dynamiquement (injecter) les dépendances entre les différents objets en s'appuyant sur une description ou de manière programmatique. Dans Symfony, ces objets sont appelés des services. https://fr.wikipedia.org/wiki/Injection_de_d%C3%A9pendances
  10. Deux skeletons symfony/skeleton • La version minimaliste • Pour les

    fanboys (Personne ?) • Déconseillé symfony/website-skeleton • La version “full featured” • Embarque les composants les plus utiles Form / Validator / Serializer / … • Pour toutes personnes voulant dev un site • Recommandé
  11. Flex - Qu’est ce que c’est ? Plugin Composer Automatise

    l'installation / la suppression de package / bundle Avoir une configuration par défaut qui fonctionne immédiatement Optimise le téléchargement des packages
  12. Les recipes (recettes) décrivent comment un paquet s’installe / se

    configure Il y a des recipes officielles, validées par la core team : github.com/symfony/recipes Et les recipes contribuées par la communauté : github.com/symfony/recipes-contrib Flex utilise des recipes
  13. Définie une configuration par défaut • Bundle(s) à instancier •

    Fichiers (config, routing ou autre) à créer • Paramètres & services à ajouter dans le DIC • Entrées à ajouter dans .gitignore, .env, etc • Tâche(s) à lancer après l'installation • Une aide à afficher après l’installation Une recipe Flex
  14. Système d'alias : composer req admin va automatiquement télécharger et

    installer easycorp/easyadmin-bundle Les alias ne sont possibles qu’avec les recipes officielles. Système de "pack" : composer req orm va automatiquement installer : • doctrine/orm • doctrine/doctrine-bundle • doctrine/doctrine-migrations-bundle Les alias et les packs
  15. Conclusion Symfony est un framework HTTP (et CLI) écrit en

    PHP qui se veut moderne, rapide, robuste et outillé. Notre but est de rendre le framework facile à utiliser en vous laissant vous focaliser sur votre cœur de métier.