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

How do we decide to create a Symfony component?

How do we decide to create a Symfony component?

If you look at the evolution of Symfony over time, you may wonder how the core-team decides that a given topic would make a good component? There are existing libraries for almost everything, so why create new ones? How does Symfony get inspired by other projects and does it happen often? Does the fact that Symfony components are used everywhere give them additional features? How are Symfony dependencies chosen? Or more generally: how does the Symfony project interact with other frameworks and libraries? During this conference, I propose to study these questions, to help you understand the underlying reasoning. It will be an opportunity to illustrate the famous "package principles" and maybe give you a better idea of how you can decide to adopt (or rewrite) such or such dependency.

Nicolas Grekas

October 27, 2022

More Decks by Nicolas Grekas

Other Decks in Programming


  1. BrowserKit Config Console CssSelector DependencyInjectio DomCrawler EventDispatcher Filesystem Finder Form

    HttpFoundation HttpKernel Process Routing Serializer Templating Translation Validator Yaml OptionsResolver Stopwatch Intl PropertyAccess Security/Acl Security/Core Security/Csrf Security/Http ExpressionLanguage
  2. Asset VarDumper Ldap PropertyInfo Polyfill* Workflow Cache patchwork/error-logger (2011) patchwork/utf8

    (2012) raulfraile/ladybug (2012) dunglas/php-property-info (2015) yohang/finite (2014) doctrine/cache, tedivm/stash (2012)
  3. Dotenv Lock WebLink Messenger VarExporter Contracts/* Mercure* Panther Encore* Mailer

    Mime Notifier ErrorHandler HttpClient String guzzlehttp/guzzle (2011) kriswallsmith/assetic (2012) patchwork/utf8 (2012) doctrine/instantiator (2014) ocramius/proxy-manager (2013) php-fig Laravel Mix & Dusk symfony/debug (2011) swiftmailer/swiftmailer (2011) league/mime-type-detection (2020) illuminate/notifications (2016) vlucas/phpdotenv (2013) fig/link-util (2016) enqueue/enqueue (2016)
  4. RateLimiter Runtime Semaphore Uid Deprecation UX* HtmlSanitizer PasswordHasher Clock illuminate/cache

    (2015) ramsey/uuid (2012) doctrine/deprecations (2020) ezyang/htmlpurifier (2006) lcobucci/clock (2017)