Manual:Code
This page describes top-level directories in the MediaWiki core code repository.
See also the following pages in the versioned MediaWiki documentation site (auto-generated using Doxygen):
Entry points
The entry point files that are loaded directly are listed below. Other files might be loaded (mostly from extensions) but doing so is non-standard and might not work on all systems.
Web browsing:
- index.php – see Parameters to index.php for more details.
- opensearch_desc.php – the OpenSearch API.
- load.php – the output point of the ResourceLoader.
API:
- api.php – the Action API.
- rest.php – the REST API.
File uploads:
- img_auth.php – serving thumbnails and originals, for use on private wikis.
- thumb_handler.php – 404 handler for thumbnails, using paths like
thumb_handler.php/a/a9/Example.jpg/120px-Example.jpg - thumb.php – 404 handler for thumbnails, using parameters like
thumb.php?f=Example.jpg&w=120
See also Manual:entry point routing, and Entry points on doc.wikimedia.org for internal details of the code for the above entry points.
The installer recommends users to enable the $wgCacheDirectory feature by making this directory writable and using it for that feature.
This directory is empty by default.
Contains high-level documentation about MediaWiki, which is automatically published for each MediaWiki release (and for "master") to doc.wikimedia.org.
For the living version of the MediaWiki doc site, see https://doc.wikimedia.org/mediawiki-core/.
This is where MediaWiki extensions are installed.
To install an extension, its source code is placed in a subdirectory here (typically by unpacking a tarball downloaded from the extension's mediawiki.org documentation page, or by cloning the source code from Gerrit).
Then, to enable the extension it must be loaded from LocalSettings.php, typically by calling wfLoadExtension().
The default distribution for MediaWiki (as advertised on our homepage and as packaged with Debian) also bundles a number of extensions and skins. See Bundled extensions and skins.
This directory stores the majority of the MediaWiki source code.
To learn about the different classes and components of MediaWiki, see "Topics" on doc.wikimedia.org/mediawiki-core/.
This is the default directory where user-uploaded media files will be stored. It is also where the generated thumbnails are stored by default.
See also Manual:Configuring file uploads and Manual:Image administration.
This directory contains pure data and configuration for localization and internationalization.
Specifically:
- the
i18n/subdirectory contains the interface messages used in MediaWiki core (using the Banana JSON file format). - the
messages/subdirectory contains misc characteristics of MediaWiki that are localisable (but not interface messages). Such as the names of Namespaces, Parser functions and Special pages.
This directory contains shell scripts for use by system administrators to perform maintenance tasks. This includes scripts for performing database schema migrations, and batch operations. See Manual:Maintenance scripts for an overview.
This directory is the entry point for the Web installer which new administrators can use to install their wiki. It helps with configuring the wiki and creating the database schema.
This directory contains frontend resources (JavaScript and CSS) managed by ResourceLoader.
This is where MediaWiki skins are installed.
To install a skin, its source code is placed in a subdirectory here (typically by unpacking a tarball, or by cloning the source code from Git).
Then, to enable the skin it must be loaded from LocalSettings.php, typically by calling wfLoadSkin().
See also Bundled extensions and skins.
Contains unit tests, integration tests, and end-to-end tests.