Manual:Code
This page describes key files and directories in the MediaWiki source code. For more detailed information, see the class, file and comprehensive references auto-generated from the MediaWiki source code using doxygen.
[edit] Access points
File | Description |
---|---|
index.php | Main access point for the MediaWiki software. It handles most requests made to MediaWiki. See Manual:index.php. |
api.php | External access point for MediaWiki's API. See API:Main page and Manual:api.php. |
load.php | Script for the front-end to hook into for loading ResourceLoader modules. See also Manual:load.php. |
img_auth.php | Script that only serves images to logged in users. To configure the wiki to use that script, see Manual:Image Authorisation. See also Manual:img_auth.php. |
opensearch_desc.php | Returns an OpenSearch description document that describes the web interface of MediaWiki's search engine. See also Manual:opensearch_desc.php. |
profileinfo.php | Allow users to see the profiling information that are stored in the database. See Manual:How to debug#Profiling. See also Manual:profileinfo.php. |
redirect.php | Script that redirects to the article passed in the wpDropdown parameter of the request. Needed for Nostalgia skin. See Manual:redirect.php. |
thumb.php | Script used to resize images. See Manual:thumb.php. |
thumb_handler.php | Access to thumbnails using HTTP-errors (Status Code 404) |
trackback.php | Adds trackbacks to the database. Removed in MediaWiki 1.19 (r104051). See Manual:trackback.php. |
[edit] Directory /includes/
This directory stores common include files needed by MediaWiki.
File | Description |
---|---|
includes/Article.php | Contains the Article class, which provides methods to view, modify and manage articles. This maintains WikiPage functions for backwards compatibility. See Manual:Article.php. |
includes/Defines.php | Defines several constants, suchs as those for namespaces, which are used by other files and classes. |
includes/EditPage.php | Provides much of the code related to the editing user interface |
includes/GlobalFunctions.php | Contains globally used functions like wfMsgExt. See Manual:GlobalFunctions.php. |
includes/Linker.php | Contains methods to create internal, external or image links and implements page existence detection. See Manual:Linker.php. |
includes/OutputPage.php | Hold HTML and wikitext parsing. Will also generate the <head> element or part of it. See Manual:OutputPage.php. |
includes/Pager.php | Contains the IndexPager class used for paging results of MySQL queries. See Manual:Pager.php. |
includes/Parser.php | Contains most of the code that converts wikitext to HTML (though few bits and pieces are in Manual:Skin.php.). See Manual:Parser.php. |
includes/Setup.php | Include commonly used files and initializes the global object variables so that MediaWiki can work. See Manual:Setup.php. |
includes/Skin.php | Encapsulates a "look and feel" for the wiki. See Manual:Skin.php. |
includes/SpecialPage.php | Contains the SpecialPage class, which is the parent class for all special page classes. It also makes available several static functions for handling the special page list and several other special page classes, like RedirectSpecialPage and IncludableSpecialPage . See Manual:SpecialPage.php and Manual:Special pages. |
includes/SiteStats.php | Contains the SiteStats class for site statistics and related things |
includes/Title.php | Represents the title of an article, and does all the work of translating among various forms such as plain text, URL, database key, etc. For convenience, and for historical reasons, it also represents a few features of articles that don't involve their text, such as access rights. See Manual:Title.php. |
includes/User.php | Encapsulates the state of the user viewing/using the site. Can be queried for things like the user's settings, name, etc. Handles the details of getting and saving to the user table of the database, and dealing with sessions and cookies. See Manual:User.php. |
includes/UserMailer.php | Collection of static functions for sending mail. See Manual:UserMailer.php. |
includes/WebRequest.php | This file contains the definition of the WebRequest class. See Manual:WebRequest.php. |
includes/WebStart.php | It does the initial setup for a web request: security checks, loads LocalSettings.php and Setup.php. See Manual:WebStart.php. |
includes/Wiki.php | This file consists of the definition of the class MediaWiki. See Manual:Wiki.php. |
includes/WikiPage.php | Contains the WikiPage class, which represents an article in the wiki. |
[edit] Directory /includes/actions/
This directory contains the Action classes, which handle the different actions which can be performed on pages (e.g. view, delete, edit, etc.). All these classes extend the Action
, FormlessAction
or FormAction
classes. Some of them are just stubs which call methods in the Article
or EditPage
classes to do the actual work.
File | Description |
---|---|
includes/actions/CreditsAction.php | Handles formatting the credits for articles. See also Manual:$wgMaxCredits. |
includes/actions/DeleteAction.php | Handles page deletion. |
includes/actions/EditAction.php | Contains classes EditAction and SubmitAction which handle the edit and submitting actions. |
includes/actions/HistoryAction.php | Handles printing the history page for an article. |
includes/actions/InfoAction.php | Displays informations about a page, like the total number of edits and number of unique editors. |
includes/actions/MarkpatrolledAction.php | Handles marking a revision as patrolled. |
includes/actions/ProtectAction.php | Handles protecting a page. |
includes/actions/PurgeAction.php | Handles purging a page. |
includes/actions/RawAction.php | Handles the "action=raw" action. |
includes/actions/RenderAction.php | Handles the render action, which shows an HTML rendering of the page; similar to the view action, but only the unstyled article text is shown, not the additional toolboxes, search boxes, stylesheets, etc. |
includes/actions/RevertAction.php | Contains class RevertFileAction , which handles reverting a file. |
includes/actions/RevisiondeleteAction.php | Handles the revision delete action by just passing the request to Special:RevisionDelete. |
includes/actions/RollbackAction.php | Handles rolling back a page. |
includes/actions/ViewAction.php | Handles the viewing of a page, by calling Article::view() . |
includes/actions/WatchAction.php | Contains classes WatchAction and UnwatchAction , which handle watching and unwatching a page. |
[edit] Directory /includes/api/
This directory contains the code for the MediaWiki API. See API:Main page. The most important files are:
File | Description |
---|---|
includes/api/ApiBase.php | The base class for all API classes. Has a lot of common code for all API actions. Inherits class ContextSource |
includes/api/ApiFormatBase.php | The base class for all formatting classes. Inherits ApiBase. |
includes/api/ApiQueryBase.php | The base class for all query API classes. Inherits ApiBase. |
[edit] Directory /includes/cache/
This directory contains files with code relating to MediaWiki's caching mechanisms.
File | Description |
---|---|
cache/FileCacheBase.php | The FileCacheBase class is the base class for classes which provide a file based cache scheme. See Manual:File cache. |
cache/GenderCache.php | Caches user genders when needed to use correct namespace aliases. |
cache/HTMLCacheUpdate.php | Invalidates the HTML cache of all the pages linking to a given title. |
HTMLFileCache.php | File based caching of HTML pages. |
cache/LinkBatch.php | The LinkBatch class represents a list of titles. |
cache/LinkCache.php | |
cache/MemcachedSessions.php | This file gets included if $wgSessionsInMemcache is set in the config. It redirects session handling functions to store their data in memcached instead of the local filesystem. |
cache/MessageCache.php | Performs various MediaWiki namespace-related functions. |
cache/ObjectFileCache.php | File based caching of objects. |
cache/ResourceFileCache.php | File based caching of JavaScript and CSS resources. |
cache/SquidUpdate.php | Handles purging appropriate Squid URLs given a title (or titles). |
[edit] Directory /includes/context/
This directory contains a few classes related to (request)contexts. As of MediaWiki 1.18 the context of a request is encapsulated inside a RequestContext
instance which implements IContextSource
. A context is a way of grouping the parts of a request together. This reduces the need for globals. See Manual:RequestContext for more information.
File | Description |
---|---|
includes/context/ContextSource.php | The ContextSource class implements the IContextSource interface. It is a helper class: by making a class extend ContextSource the class will be provided with the various getOutput , getSkin , getLanguage , etc. helpers directly and will implement IContextSource . |
includes/context/DerivativeContext.php | A DerivativeContext is an IContextSource implementation which will inherit context from another source but allows individual pieces of context to be changed locally. |
includes/context/IContextSource.php | This file contains the IContextSource interface. This interface should be implemented by objects which provide a context on a request. |
includes/context/RequestContext.php | A RequestContext object groups all the pieces relevant to the context of a request into one instance. |
[edit] Directory /includes/db/
This directory contains the code for database support. Database.php provides MediaWiki's database abstraction layer.
[edit] Directory /includes/diff/
This directory contains the standard MediaWiki difference engine. A difference engine computes the difference between two texts. Whether this difference engine is used or some external diff tool, depends on the $wgExternalDiffEngine setting.
File | Description |
---|---|
includes/diff/DairikiDiff.php | The DairikiDiff engine. Currently the standard diff engine. The file defines several related classes. |
includes/diff/DifferenceEngine.php | The DifferenceEngine class the interface between MediaWiki and whichever difference engine is used. Which difference engine is used depends on the $wgExternalDiffEngine config setting. |
includes/diff/WikiDiff3.php | Another diff engine. Currently not in use. |
[edit] Directory /includes/job/
Files related to the job queue. Each job class for a specific type of job derives from the Job
class and has to implement a run()
method which does the actual job.
File | Description |
---|---|
includes/job/DoubleRedirectJob.php | Job to fix double redirects after moving a page |
includes/job/EnotifNotifyJob.php | Job for email notification. |
includes/job/JobQueue.php | Contains the Job class. This is the abstract class to describe a background job. The class also contains static functions for handling jobs (insert jobs in the queue and pop jobs from the queue). |
includes/job/RefreshLinksJob.php | Contains the RefreshLinksJob and RefreshLinksJob2 classes for jobs to update links for a given title. They use class LinksUpdate (defined in /includes/LinksUpdate.php) to update several db tables. |
includes/job/UploadFromUrlJob.php | Job for asynchronous upload-by-url. Its an interface to the UploadFromUrl class in /includes/upload/UploadFromUrl.php. |
[edit] Directory /includes/logging/
Some files related to logging the events which happen on a Wiki. This directory was introduced in MW 1.19. Some of the files were already present in olders versions, in the includes/ directory.
File | Description |
---|---|
includes/logging/LogEntry.php | Contains the LogEntry interface and some classes implementing this interface to encapsulate log entries. Introduced in MW 1.19. |
includes/logging/LogEventsList.php | A class to list log entries. |
includes/logging/LogFormatter.php | Contains several classes for formatting log entries. Introduced in MW 1.19. |
includes/logging/LogPage.php | Class to manage a log: add entries to the log and extract information from the log. |
includes/logging/LogPager.php | Class to list log entries. Implements the ReverseChronologicalPager class. |
includes/logging/PatrolLog.php | Class containing static functions for working with logs of patrol events. |
[edit] Directory /includes/media/
This directory contains files for handling several media formats, mostly images.
[edit] Directory /includes/normal/
This directory contains some Unicode normalization routines. See includes/normal/README for more information.
[edit] Directory /includes/objectcache/
Files related to MediaWiki's caching mechanisms. The files in this directory provide the possibility to store objects in PHP accelerators, in memcached, in a database or in DBA files.
File | Description |
---|---|
includes/objectcache/APCBagOStuff.php | Implementation of BagOStuff for APC's shared memory functions. |
includes/objectcache/BagOStuff.php | Abstract class to be derived by classes which cache objects in PHP accelerators, SQL database or DBA files. It specifies the methods a cache class must provide, like get(), set(), delete(), etc. |
includes/objectcache/DBABagOStuff.php | Implementation of BagOStuff which uses PHP's DBA extension as a backend. |
includes/objectcache/EhcacheBagOStuff.php | Implementation of BagOStuff using the Ehcache RESTful web service. |
includes/objectcache/EmptyBagOStuff.php | Emulates an empty BagOStuff. |
includes/objectcache/MemcachedClient.php | Contains the MWMemcached class, a PHP memcache client. |
includes/objectcache/MemcachedPhpBagOStuff.php | Implementation of BagOStuff using memcached. It uses the MWMemcached class as a pure PHP memcached client. |
includes/objectcache/MultiWriteBagOStuff.php | Implementation of BagOStuff that replicates all writes to multiple child caches. |
includes/objectcache/ObjectCache.php | The ObjectCache class contains some static helper functions for caching objects. |
includes/objectcache/SqlBagOStuff.php | Implementation of BagOStuff using a database. |
includes/objectcache/inCacheBagOStuff.php | Implementation of BagOStuff using WinCache. |
includes/objectcache/CacheBagOStuff.php | Implementation of BagOStuff using XCache. |
[edit] Directory /includes/parser/
The MediaWiki parser, which transforms wikitext to HTML, can be found here together with related files. The most interesting files in this directory:
File | Description |
---|---|
includes/parser/CoreParserFunctions.php | A collection of functions which implement the core parser functions. |
includes/parser/CoreTagHooks.php | Tag hooks provided by MediaWiki core, e.g. <nowiki>, <gallery>, <pre>, .. |
includes/parser/LinkHolderArray.php | A LinkHolderArray holds a set of replacement pairs for wiki links. |
includes/parser/Parser.php | This file contains the parser. A few regular expressions are included. See Manual:Parser.php. |
includes/parser/ParserCache.php | This class handles caching the output from the parser. |
includes/parser/ParserOptions.php | The ParserOptions class holds a collection of options for the parser. |
includes/parser/ParserOutput.php | Contains the ParserOutput class, which encapsulates the output of the parser. |
includes/parser/Preprocessor.php | Contains the Preprocessor interface for preprocessors. Also contains the PPFrame and PPNode interfaces. |
includes/parser/Preprocessor_DOM.php | A preprocessor using PHP's DOM extension. See Manual:Preprocessor_DOM.php. This preprocessor is used if the PHP DOM extension is available. |
includes/parser/Preprocessor_Hash.php | A preprocessor using PHP arrays. This preprocessor is used if the PHP DOM isn't available or when the old XMLDOM extension is present. |
includes/parser/Preprocessor_HipHop.php | A preprocessor optimised for HipHop, using HipHop-specific syntax. |
[edit] Directory /includes/resourceloader/
Files related to ResourceLoader, a JavaScript/CSS delivery optimizing system for MediaWiki.
[edit] Directory /includes/search/
This directory contains the code to implement the possibility of searching a wiki using one the possible backends.
File | Description |
---|---|
includes/search/SearchEngine.php | Contains several classes related to searching a wiki. The SearchEngine class is the parent class for specific search implementations. |
includes/search/SearchIBM_DB2.php | Implements SearchEngine using IBM DB2. |
includes/search/SearchMssql.php | Implements SearchEngine using Msssql. |
includes/search/SearchMySQL.php | Implements SearchEngine using a MySQL search engine. |
includes/search/SearchOracle.php | Implements SearchEngine using Oracle (ConText). |
includes/search/SearchSqlite.php | Implements SearchEngine using SQLite. |
[edit] Directory /includes/specials/
This directory contains the code and classes for the standard special pages. All special page classes derive from class SpecialPage
(defined in includes/SpecialPage.php). Special pages which come with extension are located in their respective extensions directories. See also Manual:Special pages.
[edit] Directory /includes/upload/
Files providing the backend of MediaWiki's file uploads.
File | Description |
---|---|
includes/upload/UploadBase.php | UploadBase and subclasses are the backend of MediaWiki's file uploads. |
includes/upload/UploadFromChunks.php | Subclass of UploadBase implementing uploading from chunks. |
includes/upload/UploadFromFile.php | Subclass of UploadBase implementing regular file uploads. |
includes/upload/UploadFromStash.php | Subclass of UploadBase implementing uploading from previously stored file. |
includes/upload/UploadFromUrl.php | Subclass of UploadBase implementing uploading from a HTTP resource. |
includes/upload/UploadStash.php | Provides the possibility to enable applications to temporarily stash files without publishing them to the wiki. |
[edit] Directory /languages/
This directory contains files used for localization and internationalization. For a quick overview see Language in MediaWiki.
File | Description |
---|---|
languages/Language.php | Contains the Language class, it represents the language used for incidental text, and also has some character encoding functions and other locale stuff. Two globals contain an instance of this class: $wgContLang for the site language and $wgLang for the user language. |
[edit] Directory /maintenance/
This directory contains maintenance scripts that must be run from a command line interface.
See Manual:Maintenance scripts for an overview of those scripts.
[edit] Directory /resources/
This directory contains JavaScript and CSS resources used by MediaWiki, including jQuery.
[edit] Directory /skins/
This directory contain all skins classes, JavaScripts, CSS and some images used by that skins. See Manual:Skins.
[edit] Directory /tests/
Contains various (unit)test related files, including:
Language: | English • Deutsch • français • Bahasa Indonesia • 日本語 • português do Brasil • русский • 中文(简体) |
---|