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

Cataloging Symfony

Cataloging Symfony

Symfony has grown a lot since its inception. Between 2.0 and the current 5.3 release over 25 components were added. In our talk we want to take a look at these components, group them into layers and then discuss common principles for components in these layers. At the heart of this discussion are package design principles.

This knowledge will not only help you better understand how Symfony is built and how to use these components standalone (or possibly not), it will also help you design better applications and libraries yourself.

Denis Brumann

June 17, 2021
Tweet

More Decks by Denis Brumann

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. application features framework features utility features thin wrapper for PHP

    features self contained improve usability/DX/interop
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. Extract components & reuse Evolve abstractions & solidify contracts Identify

    shared functionalities Start with everything
 in one place