In the last six months I have tried several programming languages and frameworks. I have done projects with Django, Laravel, Rails, Vue and React...
For further actions, you may consider blocking this person and/or reporting abuse
I evaluated the backpack admin interface and statamic cms for a while and this was my introduction to laravel.
While I can share the excitement and can confirm how well designed the framework is, I decided against both products (but not completely against laravel).
I love that I can use Collection and Blade independently. Collection is awesome, also their Helpers ar rally nice.
What I criticize is:
The convenience comes at a high cost. There is so much magic happening under the hood, if you want to debug that, you have to really understand PHP and OOP, else you step through 5000 files and stare at code you have no idea how you got there.
Another point that threw me off was the resources a CMS like statamic needed (and I think that's because of laravel) - The execution time and memory consumption for a vanilla project was so high - what if you have really heavy things to lift?
1311 ms Total execution time (Statamic) vs 339 ms (Kirby)
24 MB (Statamic) vs 8 MB (Kirby) memory consumption
Talking about memory - the vendor folder gets huge (carbon is thousands of files) and at some point Composer always ran out of memory if I wanted to pull some library in. Again I ran 2 full laravel apps from one root - but that's the promise right?
I don't know how this would have performed in the real world - maybe a bit better because of more optimized server settings than my local dev machine, but still.
And a last point - I follow the php ugly podcast and their grievance with laravel over a long time was the weird update cycles and the removal of functionality. If you run a business on laravel you need to know your stuff and all the internals to fix stuff after major updates.
Again - Laravel is nice - but it's more hype driven development for people who tweak their VS Code for hours so it looks nice and then write 3 lines of code to call an api. Beginners should not fall for this. They need to know the basics.
Cheers.
You make good points but in my opinion you can apply your points to all battery included framework. Rails and Django face the same challenges. Only micro framework like Express or Flask can boast of being lightweight but you have to do many thing manually or use external packages. At this point it's a personal preference. But for my part I prefer battery included framework. I am a freelancer and time is money.
As for Laravel update cycle. Laravel have now 2 officials schedule update per year with plan LTS release update. Much easier to follow now.
And I fully agree with you on beginner must know the basic. That also apply to all framework.
Good points as well. If one is familiar with a framework, quick results are the selling point.
And if you hand over your work, the client profits from a well documented framework as base instead if you come up with your own. That's a plus too.
Do you maintain some of your apps?
I think that's were it comes down to in development in general. Writing a new app with the latest tech is fun. But maintaining that once new app, 5 years later is a lot of pain, especially if so much is abstracted away. (JS tooling shows that, trying to add functionality to a project you glued together with a grunt task 5 years ago is a job nobody wants to do, contrary to add some code to a project you built 15 years ago with jQuery in a single file).
Anyway - I definitely keep an eye on that (and it's hard to not do it ^^)
Maintaining a Laravel app in the long term isn't hard at all. People complain about the releases, but it's been the same release cycle for 9 years. It brings new features fast and it always has a migration path to follow. I can not remember a time where an upgrade had 2 major breaking points in the same release.
TROLL ON
Laravel, the framework buildt over a dozen of Symfony components...
TROLL OFF
Joke aside, I agree with the comments, starters should not use big framework and learn how to do the basics. I have seen this issue so many times with people changing of carreer. During their formation, they learned how to practice Symfony/Laravel/Whatever but they don't know PHP or how to program.
the only thing with laravel is that the ORM is really slow with big data set insertion, through relationships.
So far ORMs are not designed to handle huge amount of data, unless you have a very decent caching system (for reading) and do your operations asynchronously, and even in this case, writing operations should be delegated to the DB connector, bypassing the ORM. That's the hard lesson I have learn over the last 8 years using Doctrine and other secondary ORMs.
You can afford to use ORM for huge operations, but you need the infrastructure (and the logic) that can follow.
You can always paginate your result set or pushdown aggregation to your database engine.
Also, that is the default ORM you can install another one as you please.
have u tried saveQuitely() or QueryBuilder update() yet?
Learning materials can be another reason. Laracasts is one the bests around.