Lucky like a 7 — Seven SymfonyCasts Courses to Master Symfony 7
Reuben Walker, Jr.
Posted on April 27, 2024
This article first appeared on Symfony Station.
Symfony is unbeatable when it comes to building complex and scalable web applications. Be they sites, services, an API, or Spotify. It's a fantastic weapon in your PHP programming skills arsenal. So, breakout you laptop and put your thinking helmet on. This is the way to learn modern Symfony and slay your PHP space demons. 👾
Introduction
I am sure you have heard of Symfony, but if not, here is how it describes itself:
"Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony".
There you go.
But, it's not simple. Symfony has a large learning curve (unless you are just building a traditional site with it). As the quote above implies, you can take the framework, insert the components (and bundles) you need, hook it into APIs and frontend frameworks, and build anything you can imagine.
Strategy for learning Symfony
So, if you are new to Symfony, it's best to have a strategy for learning it.
I think you should start with the SymfonyCasts courses in this article. Supplement them with the great documentation available from Symfony. Then go through the official Symfony book and build the project featured in it.
Then if you are super serious you can join SensioLabs University. And maybe even take certification tests.
SymfonyCasts
But today, we are only exploring the SymfonyCasts portion of the strategy.
As you will see, it is a superb learning platform. And it has a super enthusiastic and entertaining presenter. He's a Symfony core contributor and is responsible for the things I love best about the platform like its UX functionality, Asset Mapper, and much more. Unfortunately, he has had a terrible development in his personal life. Read this now.
This sad situation has prompted me to get this article published before I planned. I want you to do one thing after finishing it. Please subscribe to SymfonyCasts and help Ryan Weaver and his family out. I am not getting anything out of this other than karma points. At a minimum, please donate to help his wife and son. You won't regret it.
You can also check out my SymfonyCasts profile if you need verification of what I am writing about or to sample a profile. I need to take more courses btw.
Here are the courses we will explore:
- Cosmic Coding with Symfony 7
- Symfony UX: Stimulus
- 30 Days with Last Stack
- AssetMapper: Modern JS with Zero Build System
- EasyAdmin! For an Awesomely Powerful Admin Area
- Go Pro with Doctrine Queries
- API Platform 3 Part 1: Mythically Good RESTful APIs
With all the courses, you can download the course script and code.
And obviously, more specialized and detailed information is available in the Symfony docs.
Symfony 7
Let's begin with Cosmic Coding with Symfony 7. This one is free by the way.
Here is Ryan's description:
"Symfony 7, yes! If you're ready to get serious about web dev - whether you're building a JSON API or a rich web app - you've come to the right place! Symfony is the famous backbone for the most popular PHP libraries, embraces object-oriented best practices and... it's just fun to use!
I want you to feel dangerous with Symfony and love the process! In this tutorial, we get to learn the fundamentals of Symfony, build real stuff and learn the how and why behind how things work."
Pay attention to the:
- The PhpStorm integration
- Recipes
- Twig
- Services
- Asset Mapper
- and Stimulus
I have not taken this course yet, but I have taken and reviewed the, SymfonyCast’s Free “Harmonious Development with Symfony 6” course.
The Symfony 7 course will be very similar.
Symfony UX
Next up is Symfony UX: Stimulus.
Ryan says:
"Symfony UX is all about helping you build better JavaScript interfaces faster.
The first piece of UX is Stimulus: a JavaScript library built around the idea that your server should return HTML. Stimulus gives you the ability to add JavaScript to any part of your page in an object-oriented way that you will love."
I have written about this extensively:
Discover Symfony UX’s Twig Components. UI without JS or BS.
Discover Symfony UX. UI with Stimulus = fewer JS headaches for you
Discover Symfony UX. Turbo lets you put SPAs in the Rearview Mirror.
These articles include the two other SymfonyCasts you should also take before you take the LAST stack course. T&T, aka Twig and Turbo.
Pay particuluar attention to controllers.
Be sure to check out the Symfony docs for more information -> StimulusBundle: Symfony integration with Stimulus
Asset Mapper
AssetMapper: Modern JS with Zero Build System may be my favorite Symfony innovation of all time.
Ryan asks:
"Ever wanted to just... write modern JavaScript and have it work without needing to fuss with a build system?
Me too! And finally - thanks to advances in the web, web servers and a new component from Symfony, it's possible! Hello AssetMapper!"
I have taken and reviewed, Join us as we explore the strange new world of Symfony’s AssetMapper via SymfonyCast
Peruse the Symfony docs for more information -> AssetMapper: Simple, Modern CSS & JS Management
LAST Stack
In 30 Days with LAST Stack Ryan claims "LAST stack - Live Components, AssetMapper, Stimulus & Turbo - puts the joy, productivity & simplicity back into creating rich, frontend experiences."
As usual, he is correct.
I just finished this one. It was both awesome and bittersweet.
The docs have more in Live Components, AssetMapper: Simple, Modern CSS & JS Management, StimulusBundle: Symfony integration with Stimulus, and Turbo: Lightning Fast Single-Page-Application Experience.
Easy Admin
EasyAdmin! For an Awesomely Powerful Admin Area is a bundle you should use to build your admin for your backend.
Ryan says:
"So... your site needs an admin area. Do yourself a favor and skip all that custom code and jump straight into EasyAdmin bundle. Why #1? Because it'll take you a fraction of the time to build what you need. Why #2? Because it'll be even better than what you would build by hand, including built-in widgets for auto-completion and toggling boolean fields. It's... pretty sweet."
I just started this one.
Visit EasyAdmin for the documentation.
Doctrine Queries
According to Wikipedia, "Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between a relational database and the heap of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language."
Symfony uses Doctrine for its ORM and the course to start mastering it is Go Pro with Doctrine Queries
Ryan exclaims:
"You already know how to query with SQL, so learning how to do complex queries with Doctrine should not be a pain! In this tutorial, we'll learn about:
- the language Doctrine speaks (DQL)
- the QueryBuilder object
- JOINs! And using them to reduce queries
- SELECTing specific fields instead of entire objects
- If all else fails, run raw SQL queries!
- Using Criteria to efficiently filter relation collections
And more! Let's see what kind of crazy queries we can create!"
I have not taken this yet. But, I could probably get the gist of it.
Scour the Symfony docs for more information -> Databases and the Doctrine ORM
API Platform
Technically API Platform is not part of Symfony. Although, they are both French. 😉
They say:
"API Platform contains a PHP library (Core) to create fully featured hypermedia (or GraphQL) web APIs supporting industry-leading standards: JSON-LD with Hydra, OpenAPI, etc.
API Platform also provides ambitious JavaScript tools to create web and mobile applications based on the most popular frontend technologies in a snap. These tools parse the documentation of the API (or of any other API supporting Hydra or OpenAPI).
API Platform is shipped with Docker and Kubernetes definitions, to develop and deploy instantly on the cloud."
I recommend the Vue route for your frontend.
The Symfony course to begin mastering it is API Platform 3 Part 1: Mythically Good RESTful APIs
Ryan says:
"API Platform is, very simply, a tool on top of Symfony that allows us to build powerful APIs and love the process! It's been around for years and, honestly, it's crushing it. They have their own dedicated conference and, they've really outdone themselves with the latest version 3."
I have not taken this yet as it's currently beyond my skill level.
API Platform has extensive documentation.
Bonus for the Frontend
At SymfonyCon Paris, I was particularly impressed with
Netgen Layouts: Building Pages with Symfony.
Fortunately, there is a SymfonyCasts course on it.
Ryan says:
"Netgen Layouts is about having your 🎂 - i.e. any Symfony app - and eating it too... by allowing you to rearrange your pages and mix in dynamic content via an admin area. Yup, your Symfony app & Twig templates + the power of a CMS tacked into the side. And all of this is done in a gently way, without "taking over" your app."
Pay attention to Twig blocks, Ajax, and mapping.
Learn more in their documentation.
The Book
After you have taken these seven courses, and maybe the bonus course, you are ready for the Book.
Not the Bible, but a much more important book.
Symfony's Founder, Fabien Ponticier authored and continually updates: Symfony: The Fast Track.
It's described with this:
"Learn how to combine Symfony with Docker, APIs, notifications, queues & asynchronous tasks, Webpack, Single-Page Applications, and other powerful tools. By the end of this book, you'll have the confidence, understanding and a clear path to dive in and start building your next application with Symfony."
It's currently for Symfony 6, but I am sure the Symfony 7 edition is coming soon.
SensioLabs
Finally, if you're really serious about this and have some cash to invest, check out SensioLab University. Unlike Trump University, it's not a fraud, and you will learn something. In other words it will benefit your career and bank statement.
With it you will "get trained with the creator of the Symfony framework."
Wrapping it Up
Alright, as you have seen Symfony competence is valuable but not simple.
Taking SymfonyCasts courses is an enlightening and entertaining way to build your skills.
It's worth the effort of learning and my strategy can get you started. With a little more time invested, your efforts will lead to mastery and all the rewards that entails.
I hope you subscribe to SymfonyCasts and take a few courses at a minimum. It has a lot to offer. And it's money well spent, both for yourself and Ryan and his family.
Happy learning (and programming) Symfonistas!
Author
Reuben Walker
Founder
Symfony Station
Posted on April 27, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.