I fix PHP apps for a living, and sometimes I write them from scratch if a client is set on using PHP. I strictly follow PSR standards and have tons of mess detector and sniffing rules that keep me mistyping or being less disciplined. I use all the new type hinting features in PHP 7, and before that I was heavily using PhpStorm's excellent support for inferring types from doc blocks.
It's still way, way more painful to write large, complex apps in PHP than in a better-designed language like TypeScript. I actually just rewrote an entire API in TypeScript, and it was like breathing clean air.
I actually realized that having better typing totally eliminates 90% of the tests I was writing for my PHP code. With static typing, you just make sure your inputs conform to the right type, and then you always seem to end up with bug-free code. That's simply not possible with PHP without bending interfaces to suit your needs. You end up with an insane number of unnecessary classes/interfaces instead of simple types that you get in other languages.
It's definitely possible to write complex apps in PHP, especially if you have excellent discipline, but there's a really good reason Facebook created Hack. PHP = Blub