The service locator, MediaWikiServices, is intended to facilitate
"manual" dependency injection in static entry points.
See also the Dependency Injection RFC T384 and Service Locator
RFC T124792 for details.
The following key points were implemented according the
discussion surrounding these RFCs:
* a configurable DI container that allows extensions to add and replace services.
* no auto-wiring, since it's prone to add confusion in large and complex applications.
* no 3rd party framework, since they typically do too much.
The following services in MediaWiki core are made accessible via the service locator
mechanism to showcase the bootstrapping mechanism:
* ConfigFactory and MainConfig
* SiteLookup and SiteStore
However, the implementation of these services was not yet converted to using proper DI
throughout the code.
Bug: T124792
Change-Id: I3c25c0ac17300d3dd13e1cf5100558a605eee15f
The mapping is not very good, but should be good enough, given
that only the URL parts are really being used.
Bug: T114107
Change-Id: I8186140aed5620cf7b4ba84aa4c9492c61f406d0
Given that the class is not constructed anywhere outside
of core the constructor can be altered without having to
worry about b/c.
Change-Id: Ie49c43a1724f05cb95a296dc0fad0f1c587d80ef
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.
Change-Id: I0056b4a8df243cfc0c5f25378de48f7a35170aca
According to the doc comment, $wgCanonicalServer can be false, and this
is equivalent to it being set to $wgServer. So don't require it to be
set for foreign wikis in $wgConf, just use the same interpretation.
This makes it slightly easier to set up CentralAuth test servers.
Change-Id: I5eb11669236ed2a71d08f53a1393a3d5e8f5f770
And added/removed spaces around some other tokens,
like +, -, *, /, <, >, =, !
Fixed windows newline style
Change-Id: I0b9c8c408f3f6bfc0d685a074d7ec468fb848fc8
* Removed spaces around array index
* Removed double spaces or added spaces to begin or end of function
calls, method signature, conditions or foreachs
* Added braces to one-line ifs
* Changed multi line conditions to one line conditions
* Realigned some arrays
Change-Id: Ia04d2a99d663b07101013c2d53b3b2e872fd9cc3
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.
Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13
* This commit depends on a commit of globalusage https://gerrit.wikimedia.org/r/17117
* This allows GlobalUsage, CentralAuth and AbuseLog extensions to use protocol relative URLs.
Change-Id: I7e65bd029f359c36770aa48e6663f26a671b92c0
Renamed WikiReference::getUrl() to getCanonicalUrl() (but kept the old name as a back compat alias), and added getFullUrl() which returns a URL built using $wgServer rather than $wgCanonicalServer, which means it'll be protocol-relative if the wiki is configured for that.