Am 13.05.19 um 12:48 schrieb Amir Sarabadani:
I wonder how many points you get for nerd snipping a software engineer :)
One, as it's rather easy ;)
Wonderful work Daniel, kudos!
Thank you for your help!
In the given list of bad dependencies, I find User class depending on Skin class one of the most problematic ones.
It's nasty on the level of the dependency graph, but it's a trivial dependency, and easily resolved using a trait or utility method: Skin::normalizeKey( $wgDefaultSkin );
Want to give it a go?
Thinking this one step further, all logic related to user options should be factored out of the User class anyway. Filed as https://phabricator.wikimedia.org/T223099Y
Also, ApiQuery class depending on all of its subclasses is one of the biggest issue making all of API query modules act as giant big monolith. That can (hopefully) easily addressed and untangle significant portion of the 40%, a rather low hanging fruit.
Yea... these dependencies a<re however not "real" - they are all dependencies on a class name literal (ApiQueryFooBar::class), not the class itself. I have filed this as a feature request with upstream https://github.com/mihaeu/dephpend/issues/47.
Cheers, Daniel