2004-07-24 07:26:23 +00:00
|
|
|
<?php
|
2004-09-02 23:28:24 +00:00
|
|
|
/**
|
2011-05-15 13:21:16 +00:00
|
|
|
* 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
|
|
|
*
|
2012-05-20 15:56:43 +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
|
|
|
|
|
*
|
WARNING: HUGE COMMIT
Doxygen documentation update:
* Changed alls @addtogroup to @ingroup. @addtogroup adds the comment to the group description, but doesn't add the file, class, function, ... to the group like @ingroup does. See for example http://svn.wikimedia.org/doc/group__SpecialPage.html where it's impossible to see related files, classes, ... that should belong to that group.
* Added @file to file description, it seems that it should be explicitely decalred for file descriptions, otherwise doxygen will think that the comment document the first class, variabled, function, ... that is in that file.
* Removed some empty comments
* Removed some ?>
Added following groups:
* ExternalStorage
* JobQueue
* MaintenanceLanguage
One more thing: there are still a lot of warnings when generating the doc.
2008-05-20 17:13:28 +00:00
|
|
|
* @file
|
2004-09-02 23:28:24 +00:00
|
|
|
*/
|
|
|
|
|
|
2017-01-13 00:46:25 +00:00
|
|
|
require_once __DIR__ . '/libs/mime/defines.php';
|
|
|
|
|
require_once __DIR__ . '/libs/rdbms/defines.php';
|
|
|
|
|
|
2017-02-10 18:09:05 +00:00
|
|
|
use Wikimedia\Rdbms\IDatabase;
|
|
|
|
|
|
2020-02-25 01:28:12 +00:00
|
|
|
/**
|
|
|
|
|
* The running version of MediaWiki.
|
|
|
|
|
*
|
2024-05-13 15:25:38 +00:00
|
|
|
* 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.
|
2020-02-25 01:28:12 +00:00
|
|
|
*
|
2021-08-18 09:09:28 +00:00
|
|
|
* @since 1.35 (also backported to 1.33.3 and 1.34.1)
|
2020-02-25 01:28:12 +00:00
|
|
|
*/
|
2025-07-01 13:47:09 +00:00
|
|
|
define( 'MW_VERSION', '1.43.3' );
|
2020-02-25 01:28:12 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2016-09-19 07:28:17 +00:00
|
|
|
* 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 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2016-09-19 07:28:17 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2004-10-24 12:03:29 +00:00
|
|
|
* Virtual namespaces; don't appear in the page database
|
2004-09-02 23:28:24 +00:00
|
|
|
*/
|
2010-10-03 17:37:26 +00:00
|
|
|
define( 'NS_MEDIA', -2 );
|
|
|
|
|
define( 'NS_SPECIAL', -1 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2004-07-24 07:26:23 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2004-10-24 12:03:29 +00:00
|
|
|
* Real namespaces
|
2004-12-21 22:47:43 +00:00
|
|
|
*
|
|
|
|
|
* Number 100 and beyond are reserved for custom namespaces;
|
|
|
|
|
* DO NOT assign standard namespaces at 100 or beyond.
|
2005-01-11 18:18:16 +00:00
|
|
|
* DO NOT Change integer values as they are most probably hardcoded everywhere
|
2018-10-04 07:06:00 +00:00
|
|
|
* see T2696 which talked about that.
|
2004-09-02 23:28:24 +00:00
|
|
|
*/
|
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 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2004-07-24 07:26:23 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2005-04-09 10:30:45 +00:00
|
|
|
* Cache type
|
|
|
|
|
*/
|
2021-02-04 06:50:31 +00:00
|
|
|
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
|
2024-05-23 10:46:12 +00:00
|
|
|
define( 'CACHE_ACCEL', 3 ); // APC or APCu
|
2022-06-21 12:56:19 +00:00
|
|
|
define( 'CACHE_HASH', 'hash' ); // A HashBagOStuff, mostly useful for testing. Not configurable
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2005-05-21 07:46:17 +00:00
|
|
|
|
2019-08-05 17:00:00 +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
|
|
|
*/
|
2015-09-11 13:44:59 +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)
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2005-05-21 07:46:17 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2005-09-13 06:55:43 +00:00
|
|
|
* Date format selectors; used in user preference storage and by
|
|
|
|
|
* Language::date() and co.
|
|
|
|
|
*/
|
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' );
|
2005-09-13 06:55:43 +00:00
|
|
|
define( 'MW_DATE_ISO', 'ISO 8601' );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2005-09-13 06:55:43 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2006-01-09 21:09:33 +00:00
|
|
|
* RecentChange type identifiers
|
|
|
|
|
*/
|
2012-10-08 10:13:08 +00:00
|
|
|
define( 'RC_EDIT', 0 );
|
|
|
|
|
define( 'RC_NEW', 1 );
|
|
|
|
|
define( 'RC_LOG', 3 );
|
|
|
|
|
define( 'RC_EXTERNAL', 5 );
|
2015-09-17 09:51:25 +00:00
|
|
|
define( 'RC_CATEGORIZE', 6 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2006-01-09 21:09:33 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2006-06-20 09:50:57 +00:00
|
|
|
* Article edit flags
|
|
|
|
|
*/
|
|
|
|
|
define( 'EDIT_NEW', 1 );
|
|
|
|
|
define( 'EDIT_UPDATE', 2 );
|
2008-04-14 07:45:50 +00:00
|
|
|
define( 'EDIT_MINOR', 4 );
|
2006-06-20 09:50:57 +00:00
|
|
|
define( 'EDIT_SUPPRESS_RC', 8 );
|
|
|
|
|
define( 'EDIT_FORCE_BOT', 16 );
|
2015-10-28 17:42:20 +00:00
|
|
|
define( 'EDIT_DEFER_UPDATES', 32 ); // Unused since 1.27
|
2006-11-08 08:06:51 +00:00
|
|
|
define( 'EDIT_AUTOSUMMARY', 64 );
|
2016-06-06 23:00:33 +00:00
|
|
|
define( 'EDIT_INTERNAL', 128 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2006-01-09 21:09:33 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2010-10-03 17:37:26 +00:00
|
|
|
* Hook support constants
|
|
|
|
|
*/
|
2008-01-17 08:58:24 +00:00
|
|
|
define( 'MW_SUPPORTS_PARSERFIRSTCALLINIT', 1 );
|
2009-10-30 01:51:21 +00:00
|
|
|
define( 'MW_SUPPORTS_LOCALISATIONCACHE', 1 );
|
2012-10-11 15:43:39 +00:00
|
|
|
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 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2006-10-03 13:00:52 +00:00
|
|
|
|
2010-11-20 07:05:02 +00:00
|
|
|
/** Support for $wgResourceModules */
|
|
|
|
|
define( 'MW_SUPPORTS_RESOURCE_MODULES', 1 );
|
|
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2010-10-03 17:37:26 +00:00
|
|
|
* Allowed values for Parser::$mOutputType
|
|
|
|
|
* Parameter to Parser::startExternalParse().
|
2014-11-18 20:29:32 +00:00
|
|
|
* 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
|
|
|
*/
|
2007-11-20 10:55:08 +00:00
|
|
|
define( 'OT_HTML', 1 );
|
|
|
|
|
define( 'OT_WIKI', 2 );
|
2008-01-19 09:03:45 +00:00
|
|
|
define( 'OT_PREPROCESS', 3 );
|
2010-03-03 02:41:14 +00:00
|
|
|
define( 'OT_PLAIN', 4 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2007-11-20 10:55:08 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2010-10-03 17:37:26 +00:00
|
|
|
* Flags for Parser::setFunctionHook
|
2014-11-11 19:28:28 +00:00
|
|
|
* Use of Parser consts is preferred:
|
|
|
|
|
* - Parser::SFH_NO_HASH
|
|
|
|
|
* - Parser::SFH_OBJECT_ARGS
|
2010-10-03 17:37:26 +00:00
|
|
|
*/
|
2007-11-20 10:55:08 +00:00
|
|
|
define( 'SFH_NO_HASH', 1 );
|
|
|
|
|
define( 'SFH_OBJECT_ARGS', 2 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2007-11-20 10:55:08 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2022-02-21 15:41:07 +00:00
|
|
|
* 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 );
|
2008-01-17 08:58:24 +00:00
|
|
|
define( 'APCOND_INGROUPS', 4 );
|
2008-12-14 20:49:19 +00:00
|
|
|
define( 'APCOND_ISIP', 5 );
|
|
|
|
|
define( 'APCOND_IPINRANGE', 6 );
|
2009-01-03 12:53:08 +00:00
|
|
|
define( 'APCOND_AGE_FROM_EDIT', 7 );
|
2009-06-18 02:50:16 +00:00
|
|
|
define( 'APCOND_BLOCKED', 8 );
|
2011-06-26 04:12:05 +00:00
|
|
|
define( 'APCOND_ISBOT', 9 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2011-08-03 18:25:04 +00:00
|
|
|
|
2023-11-29 11:17:49 +00:00
|
|
|
/** @{
|
|
|
|
|
* 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' );
|
2024-04-01 23:02:22 +00:00
|
|
|
define( 'CUDCOND_ANON', 'anonymous-user' );
|
|
|
|
|
define( 'CUDCOND_NAMED', 'named-user' );
|
2024-04-21 01:22:00 +00:00
|
|
|
define( 'CUDCOND_USERGROUP', 'usergroup' );
|
2023-11-29 11:17:49 +00:00
|
|
|
/** @} */
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
/** @{
|
2022-04-28 13:33:39 +00:00
|
|
|
* Protocol constants for UrlUtils::expand()
|
2022-04-04 19:41:23 +00:00
|
|
|
* PROTO_FALLBACK is @since 1.39
|
2011-08-03 18:25:04 +00:00
|
|
|
*/
|
|
|
|
|
define( 'PROTO_HTTP', 'http://' );
|
|
|
|
|
define( 'PROTO_HTTPS', 'https://' );
|
|
|
|
|
define( 'PROTO_RELATIVE', '//' );
|
2022-04-04 19:41:23 +00:00
|
|
|
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 );
|
2011-08-19 15:25:50 +00:00
|
|
|
define( 'PROTO_CANONICAL', 1 );
|
2011-09-07 14:17:42 +00:00
|
|
|
define( 'PROTO_INTERNAL', 2 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2012-03-05 11:53:21 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2012-06-25 21:30:51 +00:00
|
|
|
* Content model ids, used by Content and ContentHandler.
|
|
|
|
|
* These IDs will be exposed in the API and XML dumps.
|
2012-05-13 22:02:29 +00:00
|
|
|
*
|
2012-06-25 21:30:51 +00:00
|
|
|
* Extensions that define their own content model IDs should take
|
2012-10-08 15:26:11 +00:00
|
|
|
* care to avoid conflicts. Using the extension name as a prefix is recommended,
|
|
|
|
|
* for example 'myextension-somecontent'.
|
2012-05-13 22:02:29 +00:00
|
|
|
*/
|
2012-06-25 21:30:51 +00:00
|
|
|
define( 'CONTENT_MODEL_WIKITEXT', 'wikitext' );
|
|
|
|
|
define( 'CONTENT_MODEL_JAVASCRIPT', 'javascript' );
|
|
|
|
|
define( 'CONTENT_MODEL_CSS', 'css' );
|
|
|
|
|
define( 'CONTENT_MODEL_TEXT', 'text' );
|
2014-08-08 16:41:26 +00:00
|
|
|
define( 'CONTENT_MODEL_JSON', 'json' );
|
2020-07-19 19:50:37 +00:00
|
|
|
define( 'CONTENT_MODEL_UNKNOWN', 'unknown' );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2012-05-13 22:02:29 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2012-06-25 21:30:51 +00:00
|
|
|
* Content formats, used by Content and ContentHandler.
|
|
|
|
|
* These should be MIME types, and will be exposed in the API and XML dumps.
|
2012-05-13 22:02:29 +00:00
|
|
|
*
|
2012-06-25 21:30:51 +00:00
|
|
|
* Extensions are free to use the below formats, or define their own.
|
|
|
|
|
* It is recommended to stick with the conventions for MIME types.
|
2012-03-05 11:53:21 +00:00
|
|
|
*/
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
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. */
|
2013-12-07 20:48:46 +00:00
|
|
|
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. */
|
2013-12-07 20:48:46 +00:00
|
|
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
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 */
|
2013-12-07 20:48:46 +00:00
|
|
|
define( 'CONTENT_FORMAT_XML', 'application/xml' );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2016-04-19 17:53:39 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2016-04-19 17:53:39 +00:00
|
|
|
* Max string length for shell invocations; based on binfmts.h
|
|
|
|
|
*/
|
2016-05-20 18:11:58 +00:00
|
|
|
define( 'SHELL_MAX_ARG_STRLEN', '100000' );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2017-06-06 17:39:14 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2018-06-26 17:26:33 +00:00
|
|
|
* 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.
|
2021-05-03 05:13:41 +00:00
|
|
|
* - 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
|
2018-06-26 17:26:33 +00:00
|
|
|
*/
|
|
|
|
|
define( 'SCHEMA_COMPAT_WRITE_OLD', 0x01 );
|
|
|
|
|
define( 'SCHEMA_COMPAT_READ_OLD', 0x02 );
|
2021-05-03 05:13:41 +00:00
|
|
|
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 );
|
2018-06-26 17:26:33 +00:00
|
|
|
define( 'SCHEMA_COMPAT_WRITE_BOTH', SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_WRITE_NEW );
|
2021-05-03 05:13:41 +00:00
|
|
|
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 );
|
2018-06-26 17:26:33 +00:00
|
|
|
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 );
|
2021-05-03 05:13:41 +00:00
|
|
|
define( 'SCHEMA_COMPAT_TEMP', SCHEMA_COMPAT_WRITE_TEMP | SCHEMA_COMPAT_READ_TEMP );
|
2018-06-26 17:26:33 +00:00
|
|
|
define( 'SCHEMA_COMPAT_NEW', SCHEMA_COMPAT_WRITE_NEW | SCHEMA_COMPAT_READ_NEW );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2018-06-26 17:26:33 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2017-06-06 17:39:14 +00:00
|
|
|
* Schema change migration flags.
|
|
|
|
|
*
|
|
|
|
|
* Used as values of a feature flag for an orderly transition from an old
|
2018-06-26 17:26:33 +00:00
|
|
|
* 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.
|
2017-06-06 17:39:14 +00:00
|
|
|
*
|
|
|
|
|
* - 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.
|
|
|
|
|
*/
|
2018-06-26 17:26:33 +00:00
|
|
|
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 );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|
2018-12-14 11:24:44 +00:00
|
|
|
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @{
|
2018-12-14 11:24:44 +00:00
|
|
|
* 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' );
|
2018-10-05 08:36:37 +00:00
|
|
|
define( 'XML_DUMP_SCHEMA_VERSION_11', '0.11' );
|
2019-08-05 17:00:00 +00:00
|
|
|
/** @} */
|