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

Drupal's got a superpower - Drupal Camp Paris 2019

Drupal's got a superpower - Drupal Camp Paris 2019

One of the most important changes in Drupal 8 is using Symfony components. So, what's the deal with Drupal 9? Seamless code migrations and the ability to escape from old code! Let's review in depth how Symfony and Drupal have got this superpower: continually dropping code!

6baa34bc1e5c347b1003f6abe8691de1?s=128

Nicolas Grekas

February 15, 2019
Tweet

Transcript

  1. Got a superpower

  2. Got a superpower

  3. @nicolasgrekas SensioLabs

  4. github.com/ symfony/symfony + 50 standalone packages =

  5. Feature full polyfill-mbstring - console - event-dispatcher - debug -

    finder - yaml - process - translation - http-foundation - http-kernel - css-selector - routing - var-dumper - filesystem - dom-crawler - polyfill-util - polyfill- php56 - config - polyfill-php70 - symfony - monolog-bundle - dependency-injection - swiftmailer-bundle - browser-kit - polyfill-ctype - polyfill-intl-icu - class-loader - polyfill-apcu - assetic-bundle - stopwatch - polyfill-php72 - options-resolver - polyfill-php55 - validator - polyfill-php54 - phpunit-bridge - serializer - security-acl - property- access - security-core - psr-http-message-bridge - cache - twig-bridge - expression-language - intl - inflector - framework-bundle - form - security - polyfill-iconv - icu - monolog-bridge - asset - doctrine-bridge - contracts - templating - dotenv - twig-bundle - web-profiler-bundle - flex - security- bundle - security-csrf - thanks - property-info - orm-pack - lts - profiler-pack - debug-bundle - maker-bundle - polyfill-xml - web-server-bundle - proxy-manager-bridge - framework-standard-edition - debug-pack - serializer-pack - web-link - webpack-encore-pack - var-exporter - test-pack - locale - workflow - lock - security-http - apache-pack - panther - security-guard - polyfill - skeleton - website- skeleton - ldap - messenger - requirements-checker - webpack-encore-bundle - swiftmailer-bridge - propel1-bridge - polyfill-php71 - polyfill- intl-normalizer - polyfill-intl-grapheme - acl-bundle - polyfill-php73 - symfony-demo - annotations-pack - force-lowest - amqp-pack - polyfill- intl-idn - mercure - mercure-bundle - mime - panthere - polyfill-intl-messageformatter - standard-profile - polyfill-mbstring - console - event- dispatcher - debug - finder - yaml - process - translation - http-foundation - http-kernel - css-selector - routing - var-dumper - filesystem - dom-crawler - polyfill-util - polyfill- php56 - config - polyfill-php70 - symfony - monolog-bundle - dependency-injection - swiftmailer-bundle - browser-kit - polyfill-ctype - polyfill-intl-icu - class-loader - polyfill-apcu - assetic-bundle - stopwatch - polyfill-php72 - options-resolver - polyfill-php55 - validator - polyfill-php54 - phpunit-bridge - serializer - security-acl - property-access - security-core - psr-http-message- bridge - cache - twig-bridge - expression-language - intl - inflector - framework-bundle - form - security - polyfill-iconv - icu - monolog-bridge - asset - doctrine-bridge - contracts - templating - dotenv - twig-bundle - web-profiler-bundle - flex - security- bundle - security-csrf - thanks - property-info - orm-pack - lts - profiler-pack - debug-bundle - maker-bundle - polyfill-xml - web-server-bundle - proxy-manager-bridge - framework-standard-edition - debug-pack - serializer-pack - web-link - webpack-encore-pack - var-exporter - test-pack - locale - workflow - lock - security-http - apache-pack - panther - security-guard - polyfill - skeleton - website-skeleton - ldap - messenger - requirements- checker - webpack-encore-bundle - swiftmailer-bridge - propel1-bridge - polyfill-php71 - polyfill-intl-normalizer - polyfill-intl-grapheme - acl- bundle - polyfill-php73 - symfony-demo - annotations-pack - force-lowest - amqp-pack - polyfill-intl-idn - mercure - mercure-bundle - mime - panthere - polyfill-intl-messageformatter - standard-profile
  6. Foundational

  7. The best design around

  8. Enterprise-grade quality • 10 years of continuous innovation • Standards

    first – HTTP of course, etc. • Decoupled – interoperable • Automate all the things • Professionals all around
  9. A vibrant community! • 20 people in the Core Team

    • +2000 contributors • Support • Coopetition • CARE
  10. How permanent is that picture? @nicolasgrekas

  11. Predictability is king

  12. @nicolasgrekas • o • o • o Semantic Versioning http://symfony.com/bc

  13. @nicolasgrekas • • • • • • Designed for seamless

    upgrades
  14. Continuous Upgrade Path

  15. How should you know?

  16. None
  17. https://dri.es/

  18. https://dri.es/

  19. https://dri.es/

  20. https://dri.es/

  21. @nicolasgrekas So what is the big deal about Drupal 9,

    then? The big deal about Drupal 9 is … that it should not be a big deal. https://dri.es/
  22. Gábor Hojtsy

  23. Gábor Hojtsy

  24. How should you know?

  25. None
  26. Symfony has processes to DROP code!!! @nicolasgrekas

  27. Symfony can constantly reinvent itself!!! @nicolasgrekas

  28. We can constantly reinvent Symfony!!! @nicolasgrekas

  29. None
  30. None
  31. None
  32. Strategic initiatives Admin UI and JavaScript Modernisation API-First – Auto

    Updates – Composer support in Core – Config management – Doc – Layout Media – Migrate – Out-of-the-Box – Workflow Decoupled Drupal
  33. Challenges for Drupal https://dri.es/

  34. Escape stagnation

  35. Keep the competition at a distance • Technical debt? •

    Discount rate? • Be the inflation!
  36. Undergo change or be the change • Grow your roots

    and standardize • Embrace deprecations • Never stop being creative • And delete code!
  37. My wish as a Symfony Community Leader? composer require drupal

    i.e. drupal in vendor + flex automation FTW! @nicolasgrekas
  38. php/php-src composer/composer symfony/symfony drupal/drupal