wiki.techinc.nl/includes/Defines.php

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

332 lines
11 KiB
PHP
Raw Normal View History

<?php
/**
* A few constants that might be needed during LocalSettings.php.
The beginnings of HipHop compiled mode support. It works now for parser cache hits. * Work around HipHop issue 314 (volatile broken) and issue 308 (no compilation detection) by adding some large and ugly compilation detection code to WebStart.php and doMaintenance.php. * Provide an MW_COMPILED constant which can be used to detect compiled mode throughout the codebase. * Introduced wfIsHipHop(), which detects either compiled or interpreted mode. Used this to work around unusual eval() return value in eval.php. * Work around lack of ini_get() in Maintenance.php, by duplicating wfIsHipHop(). * In Maintenance::shouldExecute(), accept "include" as an inclusion function name, since all kinds of inclusion give this string in HipHop. * Introduced new class MWInit, which provides some static functions in the pre-autoloader environment. * Introduced MWInit::compiledPath(), which provides a relative path for invoking a compiled file, and MWInit::interpretedPath(), which provides an absolute path for interpreting a PHP file. Used these new functions in the appropriate places. * When we are running compiled code, don't include files which would generate duplicate class, function or constant definitions. Documented the new requirements on the contents of Defines.php and UtfNormalDefines.php. * In HipHop compiled mode, it's not possible to have executable code in the same file as a class definition. ** Moved MimeMagic initialisation to the constructor. ** Moved Namespace.php global variable initialisation to Setup.php. ** Moved MemcachedSessions.php initialisation to the caller in GlobalFunctions.php. ** Moved Sanitizer.php constants and global variables to static class members. Introduced an accessor function for the attribs regex, as a new place to put code formerly at file level. ** Moved Language.php initialisation of $wgLanguageNames to Language::getLanguageNames(). Removed the global variable, marked "private" since forever. * In two places: don't use error_log() with type=3 to append to a file, HipHop doesn't support it. Use file_put_contents() with FILE_APPEND instead. * Work around the terrible breakage of class_exists() by using MWInit::classExists() instead in various places. In WebInstaller::getPageByName(), the class_exists() was marked with a fixme comment already, so I replaced it with an autoloader solution.
2011-04-04 12:59:55 +00:00
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
require_once __DIR__ . '/libs/mime/defines.php';
require_once __DIR__ . '/libs/rdbms/defines.php';
use Wikimedia\Rdbms\IDatabase;
/**
* The running version of MediaWiki.
*
* This replaces the $wgVersion global found in earlier versions. When updating
* the XX part of 1.XX.YY, please remember to also bump the stand-alone duplicate
* of this in PHPVersionCheck.
*
* @since 1.35 (also backported to 1.33.3 and 1.34.1)
*/
define( 'MW_VERSION', '1.43.5' );
/** @{
* Obsolete IDatabase::makeList() constants
* These are also available as Database class constants
*/
define( 'LIST_COMMA', IDatabase::LIST_COMMA );
define( 'LIST_AND', IDatabase::LIST_AND );
define( 'LIST_SET', IDatabase::LIST_SET );
define( 'LIST_NAMES', IDatabase::LIST_NAMES );
define( 'LIST_OR', IDatabase::LIST_OR );
/** @} */
/** @{
* Virtual namespaces; don't appear in the page database
*/
2010-10-03 17:37:26 +00:00
define( 'NS_MEDIA', -2 );
define( 'NS_SPECIAL', -1 );
/** @} */
/** @{
* Real namespaces
*
* Number 100 and beyond are reserved for custom namespaces;
* DO NOT assign standard namespaces at 100 or beyond.
* DO NOT Change integer values as they are most probably hardcoded everywhere
* see T2696 which talked about that.
*/
2010-10-03 17:37:26 +00:00
define( 'NS_MAIN', 0 );
define( 'NS_TALK', 1 );
define( 'NS_USER', 2 );
define( 'NS_USER_TALK', 3 );
define( 'NS_PROJECT', 4 );
define( 'NS_PROJECT_TALK', 5 );
define( 'NS_FILE', 6 );
define( 'NS_FILE_TALK', 7 );
define( 'NS_MEDIAWIKI', 8 );
define( 'NS_MEDIAWIKI_TALK', 9 );
define( 'NS_TEMPLATE', 10 );
define( 'NS_TEMPLATE_TALK', 11 );
define( 'NS_HELP', 12 );
define( 'NS_HELP_TALK', 13 );
define( 'NS_CATEGORY', 14 );
define( 'NS_CATEGORY_TALK', 15 );
/** @} */
/** @{
* Cache type
*/
define( 'CACHE_ANYTHING', -1 ); // Use anything, as long as it works
define( 'CACHE_NONE', 0 ); // Do not cache
define( 'CACHE_DB', 1 ); // Store cache objects in the DB
define( 'CACHE_MEMCACHED', 'memcached-php' ); // Backwards-compatability alias for Memcached
define( 'CACHE_ACCEL', 3 ); // APC or APCu
define( 'CACHE_HASH', 'hash' ); // A HashBagOStuff, mostly useful for testing. Not configurable
/** @} */
2005-05-21 07:46:17 +00:00
/** @{
2006-01-07 13:09:30 +00:00
* Antivirus result codes, for use in $wgAntivirusSetup.
2005-05-21 07:46:17 +00:00
*/
define( 'AV_NO_VIRUS', 0 ); # scan ok, no virus found
define( 'AV_VIRUS_FOUND', 1 ); # virus found!
define( 'AV_SCAN_ABORTED', -1 ); # scan aborted, the file is probably immune
define( 'AV_SCAN_FAILED', false ); # scan failed (scanner not found or error in scanner)
/** @} */
2005-05-21 07:46:17 +00:00
/** @{
* Date format selectors; used in user preference storage and by
* Language::date() and co.
*/
Merged localisation-work branch: * Made lines from initialiseMessages() appear as list items during installation * Moved the bulk of the localisation data from the Language*.php files to the Messages*.php files. Deleted most of the Languages*.php files. * Introduced "stub global" framework to provide deferred initialisation of core modules. * Removed placeholder values for $wgTitle and $wgArticle, these variables will now be null during the initialisation process, until they are set by index.php or another entry point. * Added DBA cache type, for BDB-style caches. * Removed custom date format functions, replacing them with a format string in the style of PHP's date(). Used string identifiers instead of integer identifiers, in both the language files and user preferences. Migration should be transparent in most cases. * Simplified the initialisation API for LoadBalancer objects. * Removed the broken altencoding feature. * Moved default user options and toggles from Language to User. Language objects are still able to define default preference overrides and extra user toggles, via a slightly different interface. * Don't include the date option in the parser cache rendering hash unless $wgUseDynamicDates is enabled. * Merged LanguageUtf8 with Language. Removed LanguageUtf8.php. * Removed inclusion of language files from the bottom of Language.php. This is now consistently done from Language::factory(). * Add the name of the executing maintenance script to the debug log. Start the profiler during maintenance scripts. * Added "serialized" directory, for storing precompiled data in serialized form.
2006-07-26 07:15:39 +00:00
define( 'MW_DATE_DEFAULT', 'default' );
define( 'MW_DATE_MDY', 'mdy' );
define( 'MW_DATE_DMY', 'dmy' );
define( 'MW_DATE_YMD', 'ymd' );
define( 'MW_DATE_ISO', 'ISO 8601' );
/** @} */
/** @{
* RecentChange type identifiers
*/
define( 'RC_EDIT', 0 );
define( 'RC_NEW', 1 );
define( 'RC_LOG', 3 );
define( 'RC_EXTERNAL', 5 );
define( 'RC_CATEGORIZE', 6 );
/** @} */
/** @{
* Article edit flags
*/
define( 'EDIT_NEW', 1 );
define( 'EDIT_UPDATE', 2 );
define( 'EDIT_MINOR', 4 );
define( 'EDIT_SUPPRESS_RC', 8 );
define( 'EDIT_FORCE_BOT', 16 );
define( 'EDIT_DEFER_UPDATES', 32 ); // Unused since 1.27
define( 'EDIT_AUTOSUMMARY', 64 );
define( 'EDIT_INTERNAL', 128 );
/** @} */
/** @{
2010-10-03 17:37:26 +00:00
* Hook support constants
*/
define( 'MW_SUPPORTS_PARSERFIRSTCALLINIT', 1 );
define( 'MW_SUPPORTS_LOCALISATIONCACHE', 1 );
define( 'MW_SUPPORTS_CONTENTHANDLER', 1 );
API edit: allow ConfirmEdit to use the merged parse ConfirmEdit was tripling the amount of time it took to save a typical page via the API, since it was assuming that the APIEditBeforeSave hook was giving unmerged wikitext, requiring a full parse of the content before and after the edit in order to check the addurl trigger. Apparently nobody bothered to update it after Ia59fb6bb. APIEditBeforeSave is unusable anyway, because it is given the serialized content, without any information about the content model. It really needs the Content object in order to do it properly. So instead, adapt EditFilterMergedContent for the purpose. Incidentally, that avoids the inelegant defined('MW_API') check in ConfirmEdit's EditFilterMergedContent handler, since both API and normal edits are handled by EditFilterMergedContent in the same way. Unfortunately the interpretation of the 'value' member in the Status object passed to EditFilterMergedContent is not extensible, being an integer instead of an associative array. So we add a custom member in order to get the result array back down the stack. Another obstacle to this design was the lack of an EditPage object passed to EditFilterMergedContent. ConfirmEdit was previously directly calling EditPage::showEditForm() with a $formCallback which outputs the necessary HTML. Instead, I hacked up runPostMergeFilters() a bit, to allow the hook to request that the edit page be shown again even if hookError is not set. Then a new EditPage::showEditForm:fields hook does the necessary HTML output, instead of $formCallback. Marked $formCallback as deprecated, since I think it is now unused. Change-Id: I4b4270dd868a643512d4717927858b6ef0556d8a
2014-12-05 04:25:18 +00:00
define( 'MW_EDITFILTERMERGED_SUPPORTS_API', 1 );
/** @} */
/** Support for $wgResourceModules */
define( 'MW_SUPPORTS_RESOURCE_MODULES', 1 );
/** @{
2010-10-03 17:37:26 +00:00
* Allowed values for Parser::$mOutputType
* Parameter to Parser::startExternalParse().
* Use of Parser consts is preferred:
* - Parser::OT_HTML
* - Parser::OT_WIKI
* - Parser::OT_PREPROCESS
* - Parser::OT_PLAIN
2010-10-03 17:37:26 +00:00
*/
define( 'OT_HTML', 1 );
define( 'OT_WIKI', 2 );
define( 'OT_PREPROCESS', 3 );
define( 'OT_PLAIN', 4 );
/** @} */
/** @{
2010-10-03 17:37:26 +00:00
* Flags for Parser::setFunctionHook
* Use of Parser consts is preferred:
* - Parser::SFH_NO_HASH
* - Parser::SFH_OBJECT_ARGS
2010-10-03 17:37:26 +00:00
*/
define( 'SFH_NO_HASH', 1 );
define( 'SFH_OBJECT_ARGS', 2 );
/** @} */
/** @{
* Autopromote conditions
2010-10-03 17:37:26 +00:00
*/
2007-12-23 11:38:24 +00:00
define( 'APCOND_EDITCOUNT', 1 );
define( 'APCOND_AGE', 2 );
define( 'APCOND_EMAILCONFIRMED', 3 );
define( 'APCOND_INGROUPS', 4 );
define( 'APCOND_ISIP', 5 );
define( 'APCOND_IPINRANGE', 6 );
define( 'APCOND_AGE_FROM_EDIT', 7 );
define( 'APCOND_BLOCKED', 8 );
define( 'APCOND_ISBOT', 9 );
/** @} */
/** @{
* Conditional user defaults conditions
*
* Strings are used to make the values easier to use in extension.json
* @since 1.42
*/
define( 'CUDCOND_AFTER', 'registered-after' );
define( 'CUDCOND_ANON', 'anonymous-user' );
define( 'CUDCOND_NAMED', 'named-user' );
define( 'CUDCOND_USERGROUP', 'usergroup' );
/** @} */
/** @{
* Protocol constants for UrlUtils::expand()
* PROTO_FALLBACK is @since 1.39
*/
define( 'PROTO_HTTP', 'http://' );
define( 'PROTO_HTTPS', 'https://' );
define( 'PROTO_RELATIVE', '//' );
define( 'PROTO_FALLBACK', null );
// Legacy alias for PROTO_FALLBACK from when the current request's protocol was always the fallback
define( 'PROTO_CURRENT', PROTO_FALLBACK );
define( 'PROTO_CANONICAL', 1 );
define( 'PROTO_INTERNAL', 2 );
/** @} */
/** @{
* Content model ids, used by Content and ContentHandler.
* These IDs will be exposed in the API and XML dumps.
*
* Extensions that define their own content model IDs should take
* care to avoid conflicts. Using the extension name as a prefix is recommended,
* for example 'myextension-somecontent'.
*/
define( 'CONTENT_MODEL_WIKITEXT', 'wikitext' );
define( 'CONTENT_MODEL_JAVASCRIPT', 'javascript' );
define( 'CONTENT_MODEL_CSS', 'css' );
define( 'CONTENT_MODEL_TEXT', 'text' );
define( 'CONTENT_MODEL_JSON', 'json' );
define( 'CONTENT_MODEL_UNKNOWN', 'unknown' );
/** @} */
/** @{
* Content formats, used by Content and ContentHandler.
* These should be MIME types, and will be exposed in the API and XML dumps.
*
* Extensions are free to use the below formats, or define their own.
* It is recommended to stick with the conventions for MIME types.
*/
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** Wikitext */
define( 'CONTENT_FORMAT_WIKITEXT', 'text/x-wiki' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For JS pages */
define( 'CONTENT_FORMAT_JAVASCRIPT', 'text/javascript' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For CSS pages */
define( 'CONTENT_FORMAT_CSS', 'text/css' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For future use, e.g. with some plain HTML messages. */
define( 'CONTENT_FORMAT_TEXT', 'text/plain' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For future use, e.g. with some plain HTML messages. */
define( 'CONTENT_FORMAT_HTML', 'text/html' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For future use with the API and for extensions */
define( 'CONTENT_FORMAT_SERIALIZED', 'application/vnd.php.serialized' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For future use with the API, and for use by extensions */
define( 'CONTENT_FORMAT_JSON', 'application/json' );
Improve custom folding and grouping PHPStorm can use custom folding regions defined in either the VisualStudio style or the NetBeans style. The VisualStudio style is more pleasing to the eye and also works as a vim foldmarker. So get rid of the previous vim foldmarkers, and use region/endregion. region/endregion need to be in a single-line comment which is not a doc comment, and the rest of the comment is used as a region heading (by both PHPStorm and vim). So to retain Doxygen @name tags, it is necessary to repeat the section heading, once in a @name and once in a region. Establish a standard style for this, with a divider and three spaces before the heading, to better set off the heading name in plain text. Besides being the previous vim foldmarker, @{ is also a Doxygen grouping command. However, almost all prior usages of @{ ... @} in this sense were broken for one reason or another. It's necessary for the @{ to be in a doc comment, and DISTRIBUTE_GROUP_DOC doesn't work if any of the individual members in the group are separately documented. @name alone is sufficient to create a Doxygen section when the sections are adjacent, but if there is ungrouped content after the section, it is necessary to use @{ ... @} to avoid having the Doxygen group run on. So I retained, fixed or added @{ ... @} in certain cases. I wasn't able to test the changes to the trait documentation in Doxygen since trait syntax is not recognised and the output is badly broken. Change-Id: I7d819fdb376c861f40bfc01aed74cd3706141b20
2020-12-22 23:52:00 +00:00
/** For future use with the API, and for use by extensions */
define( 'CONTENT_FORMAT_XML', 'application/xml' );
/** @} */
/** @{
* Max string length for shell invocations; based on binfmts.h
*/
define( 'SHELL_MAX_ARG_STRLEN', '100000' );
/** @} */
/** @{
* Schema compatibility flags.
*
* Used as flags in a bit field that indicates whether the old or new schema (or both)
* are read or written.
*
* - SCHEMA_COMPAT_WRITE_OLD: Whether information is written to the old schema.
* - SCHEMA_COMPAT_READ_OLD: Whether information stored in the old schema is read.
* - SCHEMA_COMPAT_WRITE_TEMP: Whether information is written to a temporary
* intermediate schema.
* - SCHEMA_COMPAT_READ_TEMP: Whether information is read from the temporary
* intermediate schema.
* - SCHEMA_COMPAT_WRITE_NEW: Whether information is written to the new schema
* - SCHEMA_COMPAT_READ_NEW: Whether information is read from the new schema
*/
define( 'SCHEMA_COMPAT_WRITE_OLD', 0x01 );
define( 'SCHEMA_COMPAT_READ_OLD', 0x02 );
define( 'SCHEMA_COMPAT_WRITE_TEMP', 0x10 );
define( 'SCHEMA_COMPAT_READ_TEMP', 0x20 );
define( 'SCHEMA_COMPAT_WRITE_NEW', 0x100 );
define( 'SCHEMA_COMPAT_READ_NEW', 0x200 );
define( 'SCHEMA_COMPAT_WRITE_MASK',
SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_WRITE_TEMP | SCHEMA_COMPAT_WRITE_NEW );
define( 'SCHEMA_COMPAT_READ_MASK',
SCHEMA_COMPAT_READ_OLD | SCHEMA_COMPAT_READ_TEMP | SCHEMA_COMPAT_READ_NEW );
define( 'SCHEMA_COMPAT_WRITE_BOTH', SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_WRITE_NEW );
define( 'SCHEMA_COMPAT_WRITE_OLD_AND_TEMP', SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_WRITE_TEMP );
define( 'SCHEMA_COMPAT_WRITE_TEMP_AND_NEW', SCHEMA_COMPAT_WRITE_TEMP | SCHEMA_COMPAT_WRITE_NEW );
define( 'SCHEMA_COMPAT_READ_BOTH', SCHEMA_COMPAT_READ_OLD | SCHEMA_COMPAT_READ_NEW );
define( 'SCHEMA_COMPAT_OLD', SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_READ_OLD );
define( 'SCHEMA_COMPAT_TEMP', SCHEMA_COMPAT_WRITE_TEMP | SCHEMA_COMPAT_READ_TEMP );
define( 'SCHEMA_COMPAT_NEW', SCHEMA_COMPAT_WRITE_NEW | SCHEMA_COMPAT_READ_NEW );
/** @} */
/** @{
* Schema change migration flags.
*
* Used as values of a feature flag for an orderly transition from an old
* schema to a new schema. The numeric values of these constants are compatible with the
* SCHEMA_COMPAT_XXX bitfield semantics. High bits are used to ensure that the numeric
* ordering follows the order in which the migration stages should be used.
*
* - MIGRATION_OLD: Only read and write the old schema. The new schema need not
* even exist. This is used from when the patch is merged until the schema
* change is actually applied to the database.
* - MIGRATION_WRITE_BOTH: Write both the old and new schema. Read the new
* schema preferentially, falling back to the old. This is used while the
* change is being tested, allowing easy roll-back to the old schema.
* - MIGRATION_WRITE_NEW: Write only the new schema. Read the new schema
* preferentially, falling back to the old. This is used while running the
* maintenance script to migrate existing entries in the old schema to the
* new schema.
* - MIGRATION_NEW: Only read and write the new schema. The old schema (and the
* feature flag) may now be removed.
*/
define( 'MIGRATION_OLD', 0x00000000 | SCHEMA_COMPAT_OLD );
define( 'MIGRATION_WRITE_BOTH', 0x10000000 | SCHEMA_COMPAT_READ_BOTH | SCHEMA_COMPAT_WRITE_BOTH );
define( 'MIGRATION_WRITE_NEW', 0x20000000 | SCHEMA_COMPAT_READ_BOTH | SCHEMA_COMPAT_WRITE_NEW );
define( 'MIGRATION_NEW', 0x30000000 | SCHEMA_COMPAT_NEW );
/** @} */
/** @{
* XML dump schema versions, for use with XmlDumpWriter.
* See also the corresponding export-nnnn.xsd files in the docs directory,
* which are also listed at <https://www.mediawiki.org/xml/>.
* Note that not all old schema versions are represented here, as several
* were already unsupported at the time these constants were introduced.
*/
define( 'XML_DUMP_SCHEMA_VERSION_10', '0.10' );
define( 'XML_DUMP_SCHEMA_VERSION_11', '0.11' );
/** @} */