Hacker News new | ask | show | jobs
by sir_pepe 2134 days ago
As someone who wrote their last lines oh PHP in something like PHP 5, this list tickles my desire to take PHP for a spin again. Not only does the language appear to be much improved, but also the frameworks look so appealing! I'm seriously over dealing with all the low-level plumbing that comes with building Node/REST SPAs just for what's essentially a bunch of forms.
3 comments

Laravel is a great framework to work with, I would seriously recommend giving it a try.

As for NPM and the JavaScript packages, this is a flipping nightmare and I hate working with it!

I hate to state the obvious, but it's the matter of familiarity.

I've been working almost exclusively with javascript and typescript for the last 4-5 years; so that now, while trying to write an amateurish Symfony project (because shared hosting) and appreciating the maturity of Symfony, I still hate almost every moment of it and hope I could have used typescript.

Anyway, what's wrong with npm and how is it so different than composer?

One that I can think of:

The way npm install always check latest package version and use them, even if package lock already exists. Which broke apps build many many times due to developer does not recognize this behavior. I know there are npm shrinkwrap and npm ci. Its just other package manager usually follow lockfile on install and have other command to upgrade the lockfile.

Also npm install download gazilion file for each dependencies. With deep directories.

In the past, there are problem because npm way of installing dependencies and hitting this infamous windows file path length limitation.

All are now already fixed or have alternative. But at that time, composer definitely much simpler and reliable.

If you need APIs (REST or GraphQL) take a look on Symfony / API Platform https://api-platform.com/
That looks amazing. I'm going to be busy exploring its possibilities for the next few days.
Data classes, attributes, matching expression, all excellent changes. Just missing async/await syntax to defer io bound tasks.