In this video we are taking a tour of the Symfony 3 tutorial application that we will be building throughout the first part of this series. We're going to use this as our MVP (minimum viable product).
What I am hoping you take away from this series is the foundations of getting started when using Symfony 3 for a personal project. The scope of this application is small enough to go from idea to launch within a few short videos, but wide enough in potential to allow us to explore some of the more advanced ways we can work with, and learn Symfony as our project grows.
To begin with in this series we're going to make use of the following skills and technologies:
What these foundations give us is the basis for more advanced and interesting activities. These will come in the follow on series, but to give you a quick teaser - Redis, RabbitMQ, and Caching to name but a few.
For now we have a bunch of things to cover to take our confidence in using the Symfony 3 framework up the next step.
The expected level of knowledge for this series is to have either completed the "Symfony 3 for Beginners" tutorial or to have an equivalent (or greater) level of experience. This means I won't be covering any of the topics covered in the previous series in as great a depth, but will refer you back to those videos were appropriate.
All of these topics when taken in isolation can be confusing, or even in some cases, slightly boring. When given some context they become much more enjoyable, and hopefully this series inspires you to dig deeper, experiment, and learn even more.
One thing to note - whilst the EasyAdminBundle provides a bunch of features that are both extremely cool and easy to enable / use, we will be making our lives that little bit harder by doing some things in a more manual fashion. This is entirely intentional as whilst EasyAdminBundle makes life ... ahem, incredibly easy for us, there are benefits to understanding how to do some of these things yourself.
With this in mind, when it comes to handling image uploads, we won't be using VichUploaderBundle. Instead, we will do this process by hand, learning a bunch of new skills along the way. Of course, once you understand this process, feel free to bypass this and go with VichUploaderBundle.
Likewise, we will implement our own database populator / fixtures by way of a Symfony Console Command. The reasoning here is not to say that a console command is better than using a dedicated fixtures library - far from it - it is intended to help you understand how to do this yourself, so you understand what tools that automate these processes are doing for you.
If you have found this video helpful, please consider sharing. I really appreciate it.
|1||Introduction and Site Demo||02:14|
|2||Setup and a Basic Wallpaper Gallery||08:43|
|4||Adding a Detail View||04:47|
|5||Creating a Home Page||11:14|
|6||Creating our Wallpaper Entity||07:50|
|7||Wallpaper Setup Command - Part 1 - Symfony Commands As a Service||05:56|
|8||Wallpaper Setup Command - Part 2 - Injection Is Easy||08:53|
|9||Wallpaper Setup Command - Part 3 - Doing It With Style||05:37|
|10||Doctrine Fixtures - Part 1 - Setup and Category Entity Creation||08:52|
|11||Doctrine Fixtures - Part 2 - Relating Wallpapers with Categories||05:56|
|12||EasyAdminBundle - Setup and Category Configuration||06:02|
|13||EasyAdminBundle - Wallpaper Setup and List View||07:46|
|14||EasyAdminBundle - Starting with Wallpaper Uploads||05:57|
|15||Testing with PhpSpec to Guide Our Implementation||03:39|
|16||Using PhpSpec to Test our FileMover||05:34|
|17||Symfony Dependency Testing with PhpSpec||08:47|
|18||Defensive Counter Measures||06:32|
|19||No Tests - Part 1 - Uploading Files in EasyAdminBundle||11:02|
|20||No Tests - Part 2 - Uploading Files in EasyAdminBundle||07:05|
|21||Don't Mock What You Don't Own||09:36|
|22||You've Got To Take The Power Back||07:36|
|23||Making Symfony Work For Us||08:56|
|24||Testing The Wallpaper File Path Helper||15:11|
|25||Finally, It Works!||14:56|
|26||Why I Prefer Not To Use Twig||16:50|
|27||Fixing The Fixtures||11:20|
|29||Untested Updates Part Two - Now We Can Actually Update||06:33|