In the last six months I have tried several programming languages and frameworks. I have done projects with Django, Laravel, Rails, Vue and React.
I loved all of this framework. They are all mature and all do the job. On the other hand, one of these frameworks seduced me a little more than the others ... Laravel.
Here are the 10 reasons why I sincerely believe that Laravel is great!
PHP is awesome! Yes. Those who claim the opposite sorry to say but are ignorant. They ignore that PHP 3.0 has long been obsolete and that PHP 7 is now a complete OOP language, relatively fast, stable and very pleasant to work with.
The Laravel framework is precisely built in OOP with the latest PHP standards. Laravel's syntax is easy, clear, and elegant.
With Laravel there is almost no boilerplate code to write. Compared to several other frameworks, Laravel comes with a full starter configuration. Starting a new project is easy and super fast.
There are a lot of third party Laravel packages. I also find that the packages are regularly updated and ready for production.
The creators of Laravel have created an eco-system of pro products that complements Laravel in a wonderful way. Sure these products have to be paid for but in return they are now ready for full scale production and can save you hundreds of hours of development.
With Laravel it is also possible to create fullstack applications, ie backend but also frontend. The code remains executed on the server but certain products like Livewire allow to develop interactive UI like React but in pure PHP, simple and easy and without a line of Javascript.
Laravel also supports the creation of UI components. It is therefore possible to integrate already pre-developed, turnkey widgets into your UI which can be installed in less than a minute and always in pure PHP and without javascript. (ex. chart, map. calendar, datatable, ect.)
Laravel is open source but it is developed by these creators as a pro product. That is to say that customer feedback is taken into account in decisions and that corrections and improvements are regularly released. Laravel can pride itself on being up to date with the latest technology.
Incredible documentations. Laravel has in my opinion the best documentation for a backend framework. All of them are simple, clear and detailed with examples. The search tools work very well so it is easy to find what you are looking for. In addition, it is carefully updated regularly.
The Laravel community is awesome! Everyone is welcome to join the family. There is no discrimination and no one to be a snob. No questions are considered stupid. People want to help the best they can.
That's all :-)
If it makes you want to learn more about Laravel and why not try it. You can start here: www.laravel.com
I will be posting several articles in the coming weeks on Laravel. You can follow me if you don't want to miss anything.
Top comments (11)
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.