Journey to the Center of Symfony: The Dependency Injection Container

48:01

What you'll be learning

// composer.json
{
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.6.x-dev", // 2.6.x-dev
        "doctrine/orm": "~2.2,>=2.2.3", // v2.4.6
        "doctrine/doctrine-bundle": "~1.2", // v1.2.0
        "twig/extensions": "~1.0", // v1.2.0
        "symfony/assetic-bundle": "~2.3", // v2.5.0
        "symfony/swiftmailer-bundle": "~2.3", // v2.3.7
        "symfony/monolog-bundle": "~2.4", // v2.6.1
        "sensio/distribution-bundle": "~3.0", // v3.0.9
        "sensio/framework-extra-bundle": "~3.0", // v3.0.3
        "incenteev/composer-parameter-handler": "~2.0", // v2.1.0
        "hautelook/alice-bundle": "~0.2" // 0.2
    },
    "require-dev": {
        "sensio/generator-bundle": "~2.3" // v2.4.0
    }
}

Let's not just use Symfony, let's conquer it! In this series, we're going to rip open the code that builds and boots Symfony's Container to see how it really works. Yes, this is geeky, and yes it's sweet!

Besides the occasional dinosaur, expect to do the following on our adventure:

  • Build a container from scratch
  • Master the ContainerBuilder and Definition objects: the backbones to the container
  • See how Definitions are built with YAML
  • Dump the container to PHP code and use it
  • See how Symfony builds the container (woh)
  • Learn how DependencyInjection Extension classes work (i.e. the guys who process all that config.yml stuff)
  • Discover existing compiler passes and create your own

Your Guides

Ryan Weaver Leanna Pelham

Buy Access

Questions? Conversation?