Laravel 7
laravel.com
laravel.com
It just gets even small things right, nice testing support, database migrations, request validations, events and broadcasting, you name it!
I’ve always been impressed by how developer quality of life is such a high priority goal of Laravel. I think much of its adoption, and the successful businesses that have sprung up around it is a validation that they’ve done that right.
I feel it breeds bad coding habbits, many coders like it simplicity but when they use it they implement many inefficient functions, mostly around querying the database. Laravel has this robust query builder api so you have many novices accessing the database through it without understanding what they are doing.
I dont really know what "quality of life" is provided by Laravel. Its just another MVC.
The alternatives remain popular, if less so since Laravel's marketing has kicked in. To each their own.
I've used it for several web applications running in production and have always been very pleased with what it has to offer. The documentation is pretty good too.
For example they show Passport which is a free OAuth2 library exactly the same way as Nova which is a pay-per-project admin dashboard.
My biggest pains were the facades and also I wasn't a big fan of the Active Records (with the empty classes and only doing autocomplete by regularly generating loads of annotations).
Being a freelancer and the increasing popularity, I suppose it's worth taking a look again.
Though I'm still a bit hesitant to use it for my own long-term projects, especially since there are so many breaking changes and there are some side projects I won't be able to update for 3 to 12 months while I work freelance or build up new projects.
Can anyone share their experience using + updating a Laravel-based website which is at least 2 years old, especially regarding maintainability?
PHP opportunities are much more. I like using Symfony, though I also get Laravel or E-Commerce (e.g. Shopware, Spryker) offers. But of course this is because my profile is PHP / JS, so I get these offers.
Though Node.js as back end is noticeably increasing.
I know there is a lot of capability wrapped up in the framework which enables rapid development, but for long lived applications, you're going to spend a not-insignificant amount of your time keeping up with upgrades. So in a sense, the framework itself becomes technical debt. That makes it a bad framework from my point of view.
Your code base should not be forced to be so tightly coupled to the framework that you have to spend time updating it to keep up with the framework versions (or get stuck on an old version).
When I wanted to upgrade, reading this did make me wonder a bit: "The recommended method of upgrading is to create a new Laravel 5.0 install and then to copy your 4.2 site's unique application files into the new application. This would include controllers, routes, Eloquent models, Artisan commands, assets, and other code specific to your application."
My worry was: "Do I have to do this with every version??!"
Fortunately not, but the updates did take some time; I still updated a few minor versions before moving to Symfony.
Two major versions with breaking changes per year? This seems a bit too fast paced for my taste.
But I haven't used the framework and would love the input of someone that had to maintain a Laravel project for more than a year.
They provide LTS releases (similar to Ubuntu). I'd definitely recommend sticking to them for projects that are / will be in maintenance mode. The breaking changes are usually minor, so for actively developed projects, using the regular versions is fine.
Plus, this is the pace the framework has adopted for a long time now so most of the devs in the ecosystem are used to doing an upgrade once or twice a year. Generally they’re very quick. < 15 min.
I will believe that when I see it.
edit: to clarify, historically they've bumped the minor version number whenever they had major changes in the API, and now the major version bumps are usually non-breaking changes. I don't think the team fully understands Semver.
For instance, Laravel has been consistently improving authentication by providing official packages right into the framework. Whereas, Rails still doesn't have an official gem backed into the framework. The recent change of hands of "devise" gem would have been a great opportunity for Rails to take it over.
1. Very difficult to get running in shared hosting.
2. Feels a bit heavyweight for a SPA (Single Page Application) where the Javascript front-end framework (e.g. Angular, React) is doing most of the work, and the PHP Laravel backend is just processing the CRUD APIs in REST.