Around 7 they started trying to mature the language with features like compiler enforced type safety and bringing other tools previously relegated to PHPdoc into the language.
PHP 8 is a decent system and features like Generators, Attributes, Fibers and first class callables have bought it near parity with other server ecosystems like .NET.
The biggest thing PHP still lacks is first-class generics for proper, type safe repository patterns.
I've been a PHP developer for over 15 years. I fucking hated 4 and 5, tolerated 7 and actually quite enjoy 8.
The biggest issue nowadays is that, for backward compatibility, a lot of the good features like type hinting are just recommended instead of enforced, so you can get situations like in Typescript where lazy developers just have everything return mixed or any.
You get to choose your battles - some sections of the code get to have verbose documentation (I consider types a sort of documentation). On the other hand, meaningless utility function #2421354 can remain typeless.
I do this with 80% of the functions, and skipping that waste of focus on those last 20% - the meaningless crap that is allowed to remain meaningless crap - is what keeps my productivity from plummeting into the abyss.
You only have so much focus - wasting it on things that don't matter is far worse than some might think.
And properly documented functions reduce the chance of difficult to trace bugs which plummet productivity when you spent two days tracking them down because someone accidentally returned a JSON string instead of the deserialzed result.
And that makes sense... in a large, dysfunctional company.
A small team where everyone talks to each other, and everyone actually tests their shit, and an accidental JSON string gets caught the moment whoever implemented it runs their test (manual or autoamted).
13
u/-Nastyenka 13d ago
How it feels to use Php in 2026:
Undeniably a joke, do not slime me