Apparently programming to interfaces is good practice, therefore one frequently see's framework code in which methods accept params that are type hinted, and the hinted types are interfaces. That's all good and dandy. PHP runs this kind of code without any issues what so ever, because PHP does not expect you to pass an interface to a method, but an instance of a class implementing the type hinted interface. Now ... why is it that PHPstorm is seemingly incapable of looking just one or two steps further than the hinted type, namely classes which implement said types ?
The reason I'm somewhat frustrated here is, frequently the interaces don't contain all the methods one might want to call. The actual classes often tend to have methods of their own too, and obviously the way things work now, those class methods simply don't exist for PHPstorm, and hence, not only do you get highlighted methods apparently not found, but you can't even use code completion to write / use / call any of those methods.
Is there a setting in PHPstorm that can provide the functionality I am looking for, or does it need to be implemented first ?
I was able to come up with a work-around to this problem, but work-arounds are what they are ... just extra work.
Ofcourse I could change all my imports to use the concrete class everywhere instead of the interface, but I'm not sure if that is going to bite me some day.