My criticism applied actually to wide use of Interfaces in PHP (ID in solid). I believe there should be more traits. Composition considered as better approach then inheritance, but it is undiscovered territory in PHP world, so there are lots of risks also.
I actually would prefer to do less work/typing then more (as I see Yii3 moving to more typing approach). We get better flexibility and testability, but do I need it?
- Sometimes but I always can solve it just by coping class hierarhy and change needed part. (we always get PHP source code, what is false for compiled languages - why in my opinion all this SOLID(D) exists)
- PHP used mostly for web development, and unit testing in my opinion not so effective there because there is a lot of UI, DB and other external services. I myself prefer functional testing. But for this we do not need all this SOLID(D).
Moreover only since 7.4 we can implement real SOLID (actually D), because PHP before 7.4 does not support covariance and contravariance in Interfaces. But its comming.