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:
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.
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.
|1||Walking Through The Initial App||01:01|
|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|
|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|
|18||Bonus - How To Show A Flash Message On Successful Login, or Failed Login Attempt||07:27|
If you have found this course helpful, please share it.