Laravel for a large scale SaaS app, we've been told not to use it, but why?

Hey guys,

We are looking to build a large scale multitenant SaaS app, with the first version being something similar in scope to Airbnb. We identified Laravael as one of our frameworks and the more we looked into it the more we like the look of it. Our startup has a senior consultant (part time CIO) who is advising us. He seems to be against Laravel after doing some research, he came back to us with the following:

================================================================================================

Here is the feedback I got from my contacts about Laravel:

From a Sr PHP developer: “Laravel is a Symfony2 light for an MVP, not enough for a packaged solution”

From a non-PHP specialist, used to fairly large projects with dozens of developers, who asked around him: “Opinion of senior PHP developers is that Lavarel is great and great fun for developing projects but frameworks Symfony and Zend Framework could be better for bigger projects/teams as most of PHP developers are used to it, so it is easier to integrate new members and also to do deployment/maintenance or integration with other products. The team that I am working is using Drupal so they recommend it highly. I like it also.”

You may remember my thoughts about having help at hand when necessary, using a local development agency who use Symfony, and the potential limitations of a product which looks less complex and more comfortable to use, but is reportedly more limited (the whole Web tells the same story).

So, the picture is really consistent, we should take it into account. If we were a small company developing a convenience app for ourselves, Laravel might definitely have been better. But as a SaaS provider to large companies, that is a visibly not (or not yet) a viable option.

================================================================================================

Does he have a point? From what we have researched, Laravel should be fine for large scale projects? Could you guys please help to back our decision with some facts and take it to the CIO to help convince him Laravel is a good choice? Unless you guys agree that maybe symfony would be better for such a project.

Our preference for choosing Laravel over Symfony is that of the learning curve, and time is not on our side. From the looks of it, it would be far easier and quicker to get up to speed with Laravel rather than Symfony. Is it true that Laravel isn’t as feature rich as Symfony, the guy said Laravel is more of an MVP of Symfony. Is that the case?

Many thanks!

Is the person questioning the choice a senior consultant or your CIO? It’s confusing to read your OP, but the difference would affect how I’d approach it. Seems like his main points of concern are a) ramp up time and b) the ability to find outside resources.

Are you planning on bringing in new developers and/or bringing in contractors to get the ball rolling? If so, then you need to really look at the availability of local talent. If the developers in your area deals more with symfony, then laravel might not be the right choice because you don’t want to pay consultants or another agency (which usually has a MUCH higher price tag) for their learning time.

I’d ask, what is your goal? Something to throw together quickly, to do PoC or make a quick demo for a pitch, or do you want to build on a foundation for the longer term? If the former, go with Laravel. If the latter, go with Symfony.

The thing is, Laravel is most definitely more for RAD. It gets you to a finished product faster. However, as your feature set grows and you need more out of the framework, you might end up finding dead-ends. You’d probably find them in Symfony too, but they are rarer and with Symfony’s direction, the dead ends will get more and more rarer as it evolves, because Symfony’s leader, Fabien Potencier, has made a commitment to be more decoupled with a further modularization of the Symfony components (of which Laravel also takes advantage). Basically, Laravel is fairly opinionated. Symfony is trying to move away from being opinionated, although, there is always some in any framework, Symfony is trying harder to get out of your way.

Although I rarely use reddit as a source (and actually try to avoid it), this thread is pretty good reading answering sort of the same question, but put in another way.

https://www.reddit.com/r/PHP/comments/2kabck/why_does_it_seem_like_more_experienced_developers/

Scott

1 Like

Oh, and one opinionated aspect of Laravel, which made it a no-go for me, was that you must use its template engine Blade. There is no other choice, other than maybe PHTML. And, even though I’ve never used Blade, I consider it to be inferior to Twig, which is Symfony’s template engine. Oh, but you don’t have to use Twig, if you don’t want to. Another interesting aspect is, if you want to use Blade outside of Laravel, you actually have to not only use the Blade component, but you also need Laravel’s View component and even a third party component as a bridge too, to get it to work externally. To me, those two reasons show unnecessary coupling (and an opinionated bit with Laravel).

Blade
Twig

Oh, and the documentation between the two are world’s apart too, for both the template engines and the frameworks. Symfony has probably the best documentation of any framework out there.

I really couldn’t find a way to drop Blade. But I found an article on Symfony templating, which shows how to make a bridge to get Smarty working with Symfony. Fairly easy, isn’t it? To me, this is the kind of “decoupling” you need for an enterprise ready application.

Scott

I suspect that whatever choice is made it will probably be wrong simply based on your methodology. Making a conclusion and then searching around for things to support it works fine for religion. But for a business decision? Not so much.

1 Like

We run a very large site in the UK. The site itself runs on Laravel and we have services written in Slim PHP and Go. We use a little Node here and there, some Java and some message queuing.

My guys love working with Laravel. Personally I’m not a fan of the magic frameworks that do everything for you and you don’t know how they work or how to tweak them if you want to. In that respect, Zend or Symfony are preferable, but I’m the manager in the team with the most dev experience. I’m NOT the guy writing most of the code. We need something we can trust, can develop on quickly that my team enjoy working with, and that’s Laravel. You should never underestimate the value of a happy team :slight_smile:

3 Likes

Something else for your contemplation.

Built with Laravel
Projects using Symfony

Stats from Packagist:

Symfony
Installs: 7 709 769
Dependents: 2 294
Stars: 10 720
Watchers: 986
Forks: 4 226
Open Issues: 924

Laravel
Installs: 1 780 929
Dependents: 38
Stars: 18 415
Watchers: 2 612
Forks: 5 988
Open Issues: 27

I worked with Laravel for a independent project for a few months. It seems very nice in the beginning. However, as the level of customization and refinement increased the more time I spent working around all the magic than actually building features. In contrast Symfony has much less magic going one and is somewhat easier to customize in my opinion. Not to mention i think Symfony enforces a better structure from the start. Especially by including Doctrine. I think Doctrine is a much better model layer than Eloquent. The problem with Eloquent becomes very clear when you domain isn’t an exact 1:1 relationship with the database. In contrast the structure of a true ORM like Doctrine supports abstracted domains very well. Not to mention I think I prefer configuration over code and Symfony favors the former – configuration. I don’t think you can go wrong with either but after having used Laravel I think I would prefer Symfony. Laravel does have a lot of cruft in it but when those things are needed they come in very handy. So it just depends.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.