This tutorial has a new version, check it out!

Introduction

Video not working?

It looks like your browser may not support the H264 codec. If you're using Linux, try a different browser or try installing the gstreamer0.10-ffmpeg gstreamer0.10-plugins-good packages.

Thanks! This saves us from needing to use Flash or encode videos in multiple formats. And that let's us get back to making more videos :). But as always, please feel free to message us.

Introduction¶

Well hey friend! You’ve made it to part 3, so high-five a stranger and then keep going!

In this episode, I want us to really start to learn how Symfony works under the hood. We’ll learn what a service is, find out more about the core Symfony services and create a few of our own. In Doctrine, we’ll create some ManyToOne and ManyToMany relationships. We’ll also talk about lifecycle callbacks and event listeners. And there’s a lot more that we’re hiding in between all of these topics.

And you have been coding with me, right? If you have you should now feel comfortable creating new classes, routes and templates. You’re going to really kill that first project!

So when you see new concepts, stop the video, investigate, play with them, and then keep going. Ultimately, looking inside some of Symfony’s own classes is a great way to get even more comfortable.

Ok let’s roll!

Leave a comment!

What PHP libraries does this tutorial use?

// composer.json
{
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "~2.4", // v2.4.2
        "doctrine/orm": "~2.2,>=2.2.3", // v2.4.2
        "doctrine/doctrine-bundle": "~1.2", // v1.2.0
        "twig/extensions": "~1.0", // v1.0.1
        "symfony/assetic-bundle": "~2.3", // v2.3.0
        "symfony/swiftmailer-bundle": "~2.3", // v2.3.5
        "symfony/monolog-bundle": "~2.4", // v2.5.0
        "sensio/distribution-bundle": "~2.3", // v2.3.4
        "sensio/framework-extra-bundle": "~3.0", // v3.0.0
        "sensio/generator-bundle": "~2.3", // v2.3.4
        "incenteev/composer-parameter-handler": "~2.0", // v2.1.0
        "doctrine/doctrine-fixtures-bundle": "~2.2.0", // v2.2.0
        "ircmaxell/password-compat": "~1.0.3", // 1.0.3
        "phpunit/phpunit": "~4.1", // 4.1.0
        "stof/doctrine-extensions-bundle": "~1.1.0" // v1.1.0
    }
}