loading...
markdown guide
 

If you like OOP, encapsulation, clean and well structured code, testability then yes, Symfony is the better solution because Laravel violates all of this principles.

It propagates a false simplicity. It bypasses object orientation massively with its facades , its ORM and its magic nonsense.

The ORM (Eloquent) barely deserves the name as it delivers Model classes which are not much more than associative arrays. Since the ORM does not know your columns it's not capable to tell if one exists or not - it will just fail on save. Apart from column access there is more magical stuff happening with mutators. This whole lib is one of the biggest pile of junk I've seen in a long time, and it implements the Active-Record antipattern. Nuff said I guess.

Blade is not bad but pointless. It can't do anything, twig can't do just as good or better. Also it's not running in a sandbox and allows everyone heavy php code usage in the templates which can lead to a huge mess when inexperienced developers are involved in the project.

IoC / Dependency injection is good, and was actually better than Symfony's approach for a long time because of the powerful auto wiring. You can inject anything into anything without messing with config files or declare services. Symfony is closing the gap now but still Laravel has an edge here.

Vue.js integration / Laravel-mix is great. I'm using it in Symfony where it integrates just as well.

 

I've used both and I largely prefer Laravel. There are a few main reasons for that:

  1. Laravel is MUCH easier to bootstrap. There are no xml files, no dependency injection crap.
  2. Laravel is easier to learn. You can pretty much bypass the MVC pattern if you want to and dig as deep as you need to.
  3. Tons of magic. Because of Laravel's heavy use of facades and static methods, it requires less amount of boilerplate
  4. Community is amazing and constantly evolving
  5. There are lots of integrations and full-stack solutions. Laravel integrates really well with Vue, giving a PHP developer an "in" into JS.

There are more reasons but those are my main ones. I like Symfony as well and I think it's great for large enterprise applications. I've use Symfony in that context and it works well; however, trying to wire in a new bundle or library takes effort to learn the xml and bootstrapping system while with Laravel, I've noticed I didn't have to really do that.

 

These points are now invalid because of many evolves. The new Symfony have easier dependency injection with annotation or type hint!
It's true that Laravel is much easier.
Magic is something I don't like, newcomers don't get how FW work when there's too many magic.
The community is the same as the Symfony one I think, their Slack is active, the github have so many pull request, etc...
It's kinda same with product like API platform, both Sf and Laravel have blade/twig.. Maybe your own experience so

You should try Symfony 4 with Flex, it comes with many handsome features, auto config, powerful type-hint, internationalization of url and more.. Even add bundle is easy now. That's what make Symfony better in my opinion, they are making big evolve that allow you to make a little or big project.

But in fact, Symfony need a lot of time to learn how to use it.

 

Where I lived, Symfony was de facto among PHP frameworks at startups. Laravel took over when the local coding bootcamp and some new startups used Laravel.

Laravel appears to be easier to get started with and learn (mind, I used to like CakePHP a lot when I was heavily using PHP, so at the very least, I used to survey frameworks), and the community of Laravel makes a big difference.

One of the enterprise cos here also uses Vue, so that would be an enterprise-level interest in using Laravel over Symfony.

That said, I never used Laravel at all, and I've built products in production using Symfony. By the time Laravel was en vogue where I live, I was forced to use .NET professionally, and I was trying to insert Python where I could. A few opportunities came my way for Laravel, but despite the reasons above for choosing the framework, the startups here hiring Laravel devs seem to forget about that.

 
 

We're experiencing the same thing in France. Startup love Laravel because it's easier to understand and faster to start a project..

 

And by what criterias you're making your assumption about what's better or not? I guess most people don't find "better" things of Symfony that better than Laravel's "better" things so this is the reason why Symfony is not used as much as Laravel.

 

Because I've made research, they both have advantages.
But for any big project, Symfony is way better.
And Symfony 4 is now light and heavy, as you need.
Symfony is now more flexible than Laravel, the community is doing much work...
And also, I've experience where Laravel was so limited.

 

Mostly because it is easier to use, faster to start, it has a nice documentation and still can evolve well into a big application.

 

I've seen case where Laravel wasn't able to grow more. I've never seen that case with Symfony.

But yes, it's easier to start. Faster to start I'm not sure, with the new Symfony flex it's really fast now.

 

When I said it can evolve well into a big application I mean in code organization, not performance. It supports from the most basic type of application that has everything on routes.php and facades to a more enterprise like application that uses dependency injection backed by unit and functional tests. But if performance is a concern I would not choose Laravel.

The code organization was also a problem in my experience.
But it's maybe depend of the team, I wasn't involved into the development. I just casually helped a friend.

Classic DEV Post from Nov 21 '19

What are your favourite Alfred workflows?

Valentin Silvestre profile image

Sore eyes?

dev.to now has dark mode.

Go to the "misc" section of your settings and select night theme ❤️