Symfony 3 For Beginners

In my experience, getting started is the hardest part. It's even harder to get started if you're not quite sure where to begin. There's nothing worse than sitting down at your keyboard, eager to get started learning something new, but slowly losing the will to live as tasks you already know how to do with your eyes shut suddenly seem overwhelming and overly complex.

The advice I often see given to those new to Symfony, or Laravel, or Rails, or Django, (or any of the many, many others) is to try a bunch of different frameworks, and maybe different languages, and see which one feels the best to you. Every framework is designed to make your life as a developer that much easier. They solve a wide range of common problems in a (hopefully) well documented manner.

I like this advice. I think it's sound, and it's the way I found, and began learning Symfony.

Now, there's a lot of 'stuff' that Symfony offers you. If you try to use all of it in your first project then you may very well run away and never look back.

In this series we are going to start by building up a Contact Form.

This may seem like a really easy project, and if it does, then maybe this course is not the right one for you. The aim here is not to learn how to make a contact form with PHP. The aim is to see how a contact form might be implemented when using the Symfony framework.

In creating this contact form we will explore many of things you would normally use when working with Symfony:

  • Controllers
  • Forms
  • Twig (templates)
  • Routing
  • The development environment (app_dev)

Where this tutorial series begins to become more interesting is where we go after we've made this initial contact form.

You may well have heard of FOSUserBundle. It's one of the most popular bundles (think: third party add-ons) to many real-world Symfony projects. What I have found is that FOSUserBundle is often bolted on to projects without an understanding of how a similar setup could have been achieved without using this third party code.

We will implement our own security system using all the tools provided to us by the Symfony Framework. Security in Symfony is - in my opinion - the most complicated part of the entire Symfony Framework. We're going to tackle this later in this series, and in a beginner friendly fashion.

My hope here is that once you've worked with the scariest part of Symfony, you will have no fear over working with any of the remaining parts such as Doctrine (database interactivity), more complicated forms, validations, translations, and everything else besides.

To start this series I assume no knowledge of Symfony. If you have existing experience with Symfony then you may find this series a little slower paced than usual. You should have a working knowledge of PHP.

If at any point you get stuck, confused, or overwhelmed, please do feel free to get in touch. I would ask that you ask any questions in the comments section below the particular video you are watching, as this allows others to see answers to questions they too may have.

I hope you enjoy this course, and that you find Symfony to be as useful - and rewarding - as I have. Learning Symfony has changed my life (and yes, for the better!). I hope it brings you the same amount of joy.

Side Note

Yes, we have covered a simple contact form before here on CodeReviewVideos. Please understand that this is the basis of an introductory application, and is considered (in my opinion) one of the gentlest ways to start learning Symfony.


# Title Duration
1 Walking Through The Initial App 01:01
2 First Steps 04:17
3 Adding The Contact Form 04:25
4 Submitting Our Form and Sending An Email 05:10
5 Learning A Little More About Forms 05:34
6 A Different Way To Handle POST 03:55
7 One Quick Way To Style A Form 02:48
8 Creating A Members Only Support Form 04:29
9 Creating The Login Form 04:01
10 Configuration In Security.yml 04:30
11 Adding Logout 03:02
12 Registration Form - Part 1 06:16
13 Registration Form - Part 2 07:02
14 Loading Users From The Database 05:10
15 Automatically Logging In When Registering 04:21
16 Restricting Routes To Only Logged In Users 02:56
17 The Fat Controller 07:00

Code For This Course

Get the code for this course.

Share This Course

If you have found this course helpful, please share it.

Presented by

Christopher Moss

Christopher Moss

Hi, I'm Chris and welcome to In this video you will learn about... :)