Laravel vs Symfony. What to learn in 2020
I’ve been developing on Yii2 for 5 years now, and 6 months ago I decided to move to Laravel or Symfony.
These are my criteria (not sorted) for selecting a framework:
- Market trends. Not to make the same mistake that choosing yii2.
- Job opportunities.
- Support and additional components.
- Documentation.
- And lately, how can I build enterprise applications.
Market Trends
Laravel is getting a lot of buzz since it was released. It does a lot of “magic”, it reminds me a lot to yii2. Once you learn how the tricks, Laravel does a lot of additional things for you.
So, in trends Laravel is the winner by far.
Job Opportunities
Is curious that there are more open positions for Symfony than for Laravel. It seems trends are not aligned with the job market.
In this case, Symfony is the winner by far.
Support and additional components
Both Laravel and Symfony has a great component support, and Laravel use Symfony components too.
What I see is that Laravel has more components on Github, but Symfony has better components. Most of Open Source projects use more Symfony packages than Laravel one, that’s why there is more Symfony code on Github than Laravel one.
I think there is no clear winner.
Documentation
Laravel is the clear winner, is super easy to start learning Laravel and start coding, while Symfony (and also because of Doctrine and all the Yaml files) is a beast to conquer.
Laravel documentation is updated, there is a lot of videos (in Laracast) and lot of examples.
Enterprise Applications
Is super complex to find examples of large applications built on Laravel, and also find support for advanced topics.
It seams Laravel is used for small projects & fast development, but is not normal to get support on complex doubts.
In this topic, Symfony is more used on large projects, because is easier to do Domain Driving Desing, CQRS, and Hexagonal Architecture on it. Also, is more focused on testing than Laravel.
The winner here is Symfony
Verdict and final decision
For medium/small projects (most of them) you will find more comfortable working with Laravel, but if you plan to dedicate your life to Enterprise Applications, you should learn Symfony. And learning Symfony will make you a better developer, so you can learn easily later Laravel for small projects.