Current configuration on the wiki
Find a file
Tim Starling 68c433bd23 Hooks::run() call site migration
Migrate all callers of Hooks::run() to use the new
HookContainer/HookRunner system.

General principles:
* Use DI if it is already used. We're not changing the way state is
  managed in this patch.
* HookContainer is always injected, not HookRunner. HookContainer
  is a service, it's a more generic interface, it is the only
  thing that provides isRegistered() which is needed in some cases,
  and a HookRunner can be efficiently constructed from it
  (confirmed by benchmark). Because HookContainer is needed
  for object construction, it is also needed by all factories.
* "Ask your friendly local base class". Big hierarchies like
  SpecialPage and ApiBase have getHookContainer() and getHookRunner()
  methods in the base class, and classes that extend that base class
  are not expected to know or care where the base class gets its
  HookContainer from.
* ProtectedHookAccessorTrait provides protected getHookContainer() and
  getHookRunner() methods, getting them from the global service
  container. The point of this is to ease migration to DI by ensuring
  that call sites ask their local friendly base class rather than
  getting a HookRunner from the service container directly.
* Private $this->hookRunner. In some smaller classes where accessor
  methods did not seem warranted, there is a private HookRunner property
  which is accessed directly. Very rarely (two cases), there is a
  protected property, for consistency with code that conventionally
  assumes protected=private, but in cases where the class might actually
  be overridden, a protected accessor is preferred over a protected
  property.
* The last resort: Hooks::runner(). Mostly for static, file-scope and
  global code. In a few cases it was used for objects with broken
  construction schemes, out of horror or laziness.

Constructors with new required arguments:
* AuthManager
* BadFileLookup
* BlockManager
* ClassicInterwikiLookup
* ContentHandlerFactory
* ContentSecurityPolicy
* DefaultOptionsManager
* DerivedPageDataUpdater
* FullSearchResultWidget
* HtmlCacheUpdater
* LanguageFactory
* LanguageNameUtils
* LinkRenderer
* LinkRendererFactory
* LocalisationCache
* MagicWordFactory
* MessageCache
* NamespaceInfo
* PageEditStash
* PageHandlerFactory
* PageUpdater
* ParserFactory
* PermissionManager
* RevisionStore
* RevisionStoreFactory
* SearchEngineConfig
* SearchEngineFactory
* SearchFormWidget
* SearchNearMatcher
* SessionBackend
* SpecialPageFactory
* UserNameUtils
* UserOptionsManager
* WatchedItemQueryService
* WatchedItemStore

Constructors with new optional arguments:
* DefaultPreferencesFactory
* Language
* LinkHolderArray
* MovePage
* Parser
* ParserCache
* PasswordReset
* Router

setHookContainer() now required after construction:
* AuthenticationProvider
* ResourceLoaderModule
* SearchEngine

Change-Id: Id442b0dbe43aba84bd5cf801d86dedc768b082c7
2020-05-30 14:23:28 +00:00
.phan Merge "Upgrade phan to 0.10.2" 2020-04-16 14:43:06 +00:00
.pipeline
cache
docs Merge "Make hook parameters use consistent name as the Hook interface" 2020-05-30 10:07:48 +00:00
extensions
images
includes Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
languages Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
maintenance Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
mw-config Merge "installer: Add overflow:hidden to help box" 2020-05-28 20:36:41 +00:00
resources Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
skins
tests Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
.editorconfig
.eslintignore build: Move eslint ignores to .eslintignore 2020-04-22 19:17:08 +01:00
.eslintrc.json eslint: Remove quote-props override, already set upstream 2020-04-16 20:24:01 +00:00
.fresnel.yml
.gitattributes
.gitignore [docker] Use a .env file for setting the port and user 2020-04-01 17:29:14 +02:00
.gitreview
.mailmap
.phpcs.xml Narrow MediaWiki.Commenting.FunctionComment.WrongStyle 2020-05-20 03:33:39 +01:00
.stylelintrc.json
.travis.yml travis: Don't allow failures on PHP 7.4 2020-04-07 20:19:05 +02:00
api.php Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
autoload.php Merge "mime: Convert built-in MIME mappings to PHP arrays" 2020-05-21 01:01:06 +00:00
CODE_OF_CONDUCT.md
composer.json Add dev-only dependancy on pimple/pimple 2020-05-30 03:48:26 +01:00
composer.local.json-sample
COPYING
CREDITS
DEVELOPERS.md [docker] Fix install instructions for Windows 2020-04-06 21:55:50 +02:00
docker-compose.yml [docker] Use install.sh, add instructions for same 2020-04-04 21:26:39 +00:00
FAQ
Gruntfile.js build: Move eslint ignores to .eslintignore 2020-04-22 19:17:08 +01:00
HISTORY Merge "Fix native sty name from cебертатар to себертатар" 2020-05-21 22:16:06 +00:00
img_auth.php Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
index.php
INSTALL
jsduck.json Documentation fixes for upcoming ESLint config change 2020-05-16 20:02:13 +00:00
load.php
opensearch_desc.php Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
package-lock.json Selenium: Update to WebdriverIO v6 2020-05-21 13:57:40 +00:00
package.json Selenium: Update to WebdriverIO v6 2020-05-21 13:57:40 +00:00
phpunit.xml.dist
README
README.mediawiki
RELEASE-NOTES-1.35 Hooks::run() call site migration 2020-05-30 14:23:28 +00:00
rest.php
SECURITY
thumb.php Stop using SCRIPT_NAME where possible, rely on statically configured routing 2020-04-01 12:33:38 -04:00
thumb_handler.php
UPGRADE

== MediaWiki ==

MediaWiki is a free and open-source wiki software package written in PHP. It
serves as the platform for Wikipedia and the other Wikimedia projects, used
by hundreds of millions of people each month. MediaWiki is localised in over
350 languages and its reliability and robust feature set have earned it a large
and vibrant community of third-party users and developers.

MediaWiki is:

* feature-rich and extensible, both on-wiki and with hundreds of extensions;
* scalable and suitable for both small and large sites;
* simple to install, working on most hardware/software combinations; and
* available in your language.

For system requirements, installation, and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.

* Ready to get started?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Download
* Looking for the technical manual?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents
* Seeking help from a person?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Communication
* Looking to file a bug report or a feature request?
** https://bugs.mediawiki.org/
* Interested in helping out?
** https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute

MediaWiki is the result of global collaboration and cooperation. The CREDITS
file lists technical contributors to the project. The COPYING file explains
MediaWiki's copyright and license (GNU General Public License, version 2 or
later). Many thanks to the Wikimedia community for testing and suggestions.