Hi all!
Over the last couple of months, I have worked on introducing a dependency injection mechanism into MediaWiki core (don't fear, no auto-wiring). My proposal is described in detail at https://phabricator.wikimedia.org/T124792 (yea, TL;DR - just read the top and search the rest if you have a question).
Before we discuss this again on IRC at the RFC meeting on Wednesday (March 23, 2pm PST / 22:00 CEST due to daylight confusion), I would like to invite you to review the proposal as well as the patches that are up on gerrit. In particular, any feedback would be appreciated on:
* Introduce top level service locator https://gerrit.wikimedia.org/r/#/c/264403/29. * Allow reset of global services https://gerrit.wikimedia.org/r/#/c/270020/ * WIP: Make storage layer services injectable. https://gerrit.wikimedia.org/r/#/c/267692/
Perhaps also have a look at the documentation included in the change, in particular the migration part: https://gerrit.wikimedia.org/r/#/c/264403/29/docs/injection.txt
Before commenting on design choices on gerrit, please have a look at T124792 and see whether I have written something about the issue in question there. I would like to focus conceptual discussion on the RFC ticket on phabricator, rather than on gerrit. On gerrit, we can talk about the implementation.
I very much want this to move forward. Perhaps we can even get the first bits of this merged at the hackathon. So, criticize away!
Thanks for your help! -- daniel
PS: phabricator event page (still blank, we'll fix that soon): https://phabricator.wikimedia.org/E66/27