Slide 1

Slide 1 text

Cartographing Symfony Making sense of the Symfony Components when used standalone or in full-stack

Slide 2

Slide 2 text

Christian Flothmann @xabbuh Denis Brumann @dbrumann

Slide 3

Slide 3 text

Symfony 2.0 Full List of Components BrowserKit ClassLoader Config Console CssSelector DependencyInjection DomCrawler EventDispatcher Filesystem Finder Form HttpFoundation HttpKernel Locale Process Routing Security Serializer Templating Translation Validator Yaml

Slide 4

Slide 4 text

Symfony 2.0 Full List of Components BrowserKit ClassLoader Config Console CssSelector DependencyInjection DomCrawler EventDispatcher Filesystem Finder Form HttpFoundation HttpKernel Locale Process Routing Security Serializer Templating Translation Validator Yaml 22 components

Slide 5

Slide 5 text

Symfony 5.3 Full List of Components Asset BrowserKit Cache Config Console CssSelector DependencyInjection DomCrawler Dotenv ErrorHandler EventDispatcher ExpressionLanguage Filesystem Finder Form HttpClient HttpFoundation HttpKernel Inflector Intl Ldap Lock Mailer Messenger Mime Notifier OptionsResolver PasswordHasher Process PropertyAccess PropertyInfo RateLimiter Routing Runtime Security Semaphore Serializer Stopwatch String Templating Translation Uid Validator VarDumper VarExporter WebLink Workflow Yaml

Slide 6

Slide 6 text

Symfony 5.3 Full List of Components Asset BrowserKit Cache Config Console CssSelector DependencyInjection DomCrawler Dotenv ErrorHandler EventDispatcher ExpressionLanguage Filesystem Finder Form HttpClient HttpFoundation HttpKernel Inflector Intl Ldap Lock Mailer Messenger Mime Notifier OptionsResolver PasswordHasher Process PropertyAccess PropertyInfo RateLimiter Routing Runtime Security Semaphore Serializer Stopwatch String Templating Translation Uid Validator VarDumper VarExporter WebLink Workflow Yaml 28 NEW components
 *compared to Symfony 2.0

Slide 7

Slide 7 text

application features framework features utility features core features

Slide 8

Slide 8 text

application features framework features utility features thin wrapper for PHP features self contained improve usability/DX/interop

Slide 9

Slide 9 text

Core Features Asset BrowserKit Cache Config CssSelector DependencyInjection DomCrawler Console ErrorHandler EventDispatcher ExpressionLanguage Filesystem DotEnv Form HttpClient HttpFoundation Inflector Intl Ldap HttpKernel Mailer Messenger Mime Notifier Lock Finder Process PropertyAccess PropertyInfo Routing Security Semaphore RateLimiter Stopwatch String Templating Translation Serializer OptionsResolver VarExporter Weblink Workflow VarDumper Uid Validator Yaml Runtime PasswordHasher

Slide 10

Slide 10 text

core features application features framework features utility features

Slide 11

Slide 11 text

core features application features framework features provides basic features few dependencies shared functionality

Slide 12

Slide 12 text

Utility Features Asset BrowserKit Cache Config CssSelector DependencyInjection DomCrawler Console ErrorHandler EventDispatcher ExpressionLanguage Filesystem DotEnv Form HttpClient HttpFoundation Inflector Intl Ldap HttpKernel Mailer Messenger Mime Notifier Lock Finder Process PropertyAccess PropertyInfo Routing Security Semaphore RateLimiter Stopwatch String Templating Translation Serializer OptionsResolver VarExporter Weblink Workflow VarDumper Uid Validator Yaml Runtime PasswordHasher

Slide 13

Slide 13 text

core features utility features framework features application features

Slide 14

Slide 14 text

core features utility features framework features high level functionality extendable help building app-features

Slide 15

Slide 15 text

Application Features Asset BrowserKit Cache Config CssSelector DependencyInjection DomCrawler Console ErrorHandler EventDispatcher ExpressionLanguage Filesystem DotEnv Form HttpClient HttpFoundation Inflector Intl Ldap HttpKernel Mailer Messenger Mime Notifier Lock Finder Process PropertyAccess PropertyInfo Routing Security Semaphore RateLimiter Stopwatch String Templating Translation Serializer OptionsResolver VarExporter Weblink Workflow VarDumper Uid Validator Yaml Runtime PasswordHasher

Slide 16

Slide 16 text

core features utility features application features framework features

Slide 17

Slide 17 text

core features utility features application features provide configurability customizable help run the application

Slide 18

Slide 18 text

Framework Features Asset BrowserKit Cache Config CssSelector DependencyInjection DomCrawler Console ErrorHandler EventDispatcher ExpressionLanguage Filesystem DotEnv Form HttpClient HttpFoundation Inflector Intl Ldap HttpKernel Mailer Messenger Mime Notifier Lock Finder Process PropertyAccess PropertyInfo Routing Security Semaphore RateLimiter Stopwatch String Templating Translation Serializer OptionsResolver VarExporter Weblink Workflow VarDumper Uid Validator Yaml Runtime PasswordHasher

Slide 19

Slide 19 text

provide configurability customizable help run the application high level functionality extendable help building app-features provides basic features few dependencies shared functionality thin wrapper for PHP features self contained improve usability/DX/interop

Slide 20

Slide 20 text

12.534 37.103 9.720 15.659

Slide 21

Slide 21 text

12.534 37.103 9.720 15.659 75.016

Slide 22

Slide 22 text

core features utility features application features framework features

Slide 23

Slide 23 text

core features utility features application features framework features less
 coupled more
 coupled

Slide 24

Slide 24 text

core features utility features application features framework features easier
 to set up harder to set up

Slide 25

Slide 25 text

core features utility features application features framework features easier
 to set up harder to set up

Slide 26

Slide 26 text

core features utility features application features framework features easier
 to set up harder to set up

Slide 27

Slide 27 text

core features utility features application features framework features easier
 to set up harder to set up

Slide 28

Slide 28 text

core features utility features application features framework features easier to use
 standalone harder to use
 standalone

Slide 29

Slide 29 text

core features utility features application features framework features easier to use
 standalone harder to use
 standalone

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Symfony 2.8 Assets ExpressionLanguage Intl Ldap OptionsResolver PropertyInfo

Slide 34

Slide 34 text

Symfony 3.4 Cache DotEnv Inflector WebLink Workflow

Slide 35

Slide 35 text

Symfony 4.4 ErrorHandler HttpClient Mailer Messenger Mime Notifier VarExporter

Slide 36

Slide 36 text

Symfony 5.3 PasswordHasher RateLimiter Runtime Semaphore String Uid

Slide 37

Slide 37 text

Decoupled?! Using Symfony Components standalone is really difficult!

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Where is Waldo? Why doesn’t Symfony have feature X, Y or Z?

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Extract components & reuse Evolve abstractions & solidify contracts Identify shared functionalities Start with everything
 in one place

Slide 44

Slide 44 text

Thank You!