Merge "Introduce top level service locator."
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 3 Apr 2016 07:26:31 +0000 (07:26 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 3 Apr 2016 07:26:31 +0000 (07:26 +0000)
1  2 
autoload.php
docs/hooks.txt
includes/DefaultSettings.php

diff --combined autoload.php
@@@ -185,7 -185,7 +185,7 @@@ $wgAutoloadLocalClasses = 
        'BmpHandler' => __DIR__ . '/includes/media/BMP.php',
        'BotPassword' => __DIR__ . '/includes/user/BotPassword.php',
        'BrokenRedirectsPage' => __DIR__ . '/includes/specials/SpecialBrokenRedirects.php',
 -      'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/BufferingStatsdDataFactory.php',
 +      'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/BufferingStatsdDataFactory.php',
        'CLIParser' => __DIR__ . '/maintenance/parse.php',
        'CSSMin' => __DIR__ . '/includes/libs/CSSMin.php',
        'CacheDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
        'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
        'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
        'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
+       'MediaWiki\\MediaWikiServices' => __DIR__ . '/includes/MediaWikiServices.php',
        'MediaWiki\\Languages\\Data\\Names' => __DIR__ . '/languages/data/Names.php',
        'MediaWiki\\Languages\\Data\\ZhConversion' => __DIR__ . '/languages/data/ZhConversion.php',
        'MediaWiki\\Logger\\LegacyLogger' => __DIR__ . '/includes/debug/logger/LegacyLogger.php',
        'MediaWiki\\Logger\\Monolog\\WikiProcessor' => __DIR__ . '/includes/debug/logger/monolog/WikiProcessor.php',
        'MediaWiki\\Logger\\NullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
        'MediaWiki\\Logger\\Spi' => __DIR__ . '/includes/debug/logger/Spi.php',
+       'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/Services/ServiceContainer.php',
        'MediaWiki\\Session\\BotPasswordSessionProvider' => __DIR__ . '/includes/session/BotPasswordSessionProvider.php',
        'MediaWiki\\Session\\CookieSessionProvider' => __DIR__ . '/includes/session/CookieSessionProvider.php',
        'MediaWiki\\Session\\ImmutableSessionProviderWithCookie' => __DIR__ . '/includes/session/ImmutableSessionProviderWithCookie.php',
        'NullJob' => __DIR__ . '/includes/jobqueue/jobs/NullJob.php',
        'NullLockManager' => __DIR__ . '/includes/filebackend/lockmanager/LockManager.php',
        'NullRepo' => __DIR__ . '/includes/filerepo/NullRepo.php',
 +      'NullStatsdDataFactory' => __DIR__ . '/includes/libs/stats/NullStatsdDataFactory.php',
        'OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php',
        'ORAField' => __DIR__ . '/includes/db/DatabaseOracle.php',
        'ORAResult' => __DIR__ . '/includes/db/DatabaseOracle.php',
        'PackedHoverImageGallery' => __DIR__ . '/includes/gallery/PackedOverlayImageGallery.php',
        'PackedImageGallery' => __DIR__ . '/includes/gallery/PackedImageGallery.php',
        'PackedOverlayImageGallery' => __DIR__ . '/includes/gallery/PackedOverlayImageGallery.php',
 -      'Page' => __DIR__ . '/includes/page/WikiPage.php',
 +      'Page' => __DIR__ . '/includes/page/Page.php',
        'PageArchive' => __DIR__ . '/includes/specials/SpecialUndelete.php',
        'PageExists' => __DIR__ . '/maintenance/pageExists.php',
        'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php',
        'SquidPurgeClientPool' => __DIR__ . '/includes/clientpool/SquidPurgeClientPool.php',
        'SquidUpdate' => __DIR__ . '/includes/deferred/CdnCacheUpdate.php',
        'SrConverter' => __DIR__ . '/languages/classes/LanguageSr.php',
 +      'StatsdAwareInterface' => __DIR__ . '/includes/libs/stats/StatsdAwareInterface.php',
        'StatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
        'Status' => __DIR__ . '/includes/Status.php',
        'StatusValue' => __DIR__ . '/includes/libs/StatusValue.php',
diff --combined docs/hooks.txt
@@@ -1997,6 -1997,11 +1997,11 @@@ $user: $wgUse
  $request: $wgRequest
  $mediaWiki: The $mediawiki object
  
+ 'MediaWikiServices': Override services in the default MediaWikiServices instance.
+ Extensions may use this to define, replace, or wrap existing services.
+ However, the preferred way to define a new service is the $wgServiceWiringFiles array.
+ $services: MediaWikiServices
  'MessageCache::get': When fetching a message. Can be used to override the key
  for customisations. Given and returned message key must be in special format:
  1) first letter must be in lower case according to the content language.
@@@ -2855,7 -2860,6 +2860,7 @@@ $special: the SpecialPage objec
  $subPage: the subpage string or null if no subpage was specified
  
  'SpecialPageBeforeExecute': Called before SpecialPage::execute.
 +Return false to prevent execution.
  $special: the SpecialPage object
  $subPage: the subpage string or null if no subpage was specified
  
@@@ -6480,10 -6480,6 +6480,10 @@@ $wgUnwatchedPageThreshold = false
   *   'legend' => 'legend-msg',
   *   // optional (defaults to 'flag'), CSS class to put on changes lists rows
   *   'class' => 'css-class',
 + *   // optional (defaults to 'any'), how top-level flag is determined.  'any'
 + *   // will set the top-level flag if any line contains the flag, 'all' will
 + *   // only be set if all lines contain the flag.
 + *   'grouping' => 'any',
   * );
   * @endcode
   *
@@@ -6494,27 -6490,23 +6494,27 @@@ $wgRecentChangesFlags = 
                'letter' => 'newpageletter',
                'title' => 'recentchanges-label-newpage',
                'legend' => 'recentchanges-legend-newpage',
 +              'grouping' => 'any',
        ],
        'minor' => [
                'letter' => 'minoreditletter',
                'title' => 'recentchanges-label-minor',
                'legend' => 'recentchanges-legend-minor',
                'class' => 'minoredit',
 +              'grouping' => 'all',
        ],
        'bot' => [
                'letter' => 'boteditletter',
                'title' => 'recentchanges-label-bot',
                'legend' => 'recentchanges-legend-bot',
                'class' => 'botedit',
 +              'grouping' => 'all',
        ],
        'unpatrolled' => [
                'letter' => 'unpatrolledletter',
                'title' => 'recentchanges-label-unpatrolled',
                'legend' => 'recentchanges-legend-unpatrolled',
 +              'grouping' => 'any',
        ],
  ];
  
@@@ -6554,6 -6546,12 +6554,6 @@@ $wgRightsText = null
   */
  $wgRightsIcon = null;
  
 -/**
 - * Set this to some HTML to override the rights icon with an arbitrary logo
 - * @deprecated since 1.18 Use $wgFooterIcons['copyright']['copyright']
 - */
 -$wgCopyrightIcon = null;
 -
  /**
   * Set this to true if you want detailed copyright information forms on Upload.
   */
@@@ -6886,6 -6884,21 +6886,21 @@@ $wgAuth = null
   */
  $wgHooks = [];
  
+ /**
+  * List of service wiring files to be loaded by the default instance of MediaWikiServices.
+  * Each file listed here is expected to return an associative array mapping service names
+  * to instantiator functions. Extensions may add wiring files to define their own services.
+  * However, this cannot be used to replace existing services - use the MediaWikiServices
+  * hook for that.
+  *
+  * @see MediaWikiServices
+  * @see ServiceContainer::loadWiringFiles() for details on loading service instantiator functions.
+  * @see docs/injection.txt for an overview of dependency injection in MediaWiki.
+  */
+ $wgServiceWiringFiles = [
+       __DIR__ . '/ServiceWiring.php'
+ ];
  /**
   * Maps jobs to their handling classes; extensions
   * can add to this to provide custom jobs