User:WolfgangFahl/Workdocumentation 2015-12-27

From semantic-mediawiki.org
Jump to: navigation, search
Wolfgang FahlUser:WolfgangFahl/Workdocumentation 2015-12-27

see

Environment

Environment: MacOSX 10.11.2 El Capitan MacPorts MAMP see https://trac.macports.org/wiki/howto/MAMP

  • MacOSX: Darwin neso.bitplan.com 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 x86_64
  • Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.2e DAV/2 PHP/5.6.16
  • mysql Ver 14.14 Distrib 5.6.28, for osx10.11 (x86_64) using EditLine wrapper
  • PHP 5.6.16 (cli) (built: Dec 26 2015 14:55:14)

Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

   with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans

Installing xdebug

sudo port install php56-xdebug
sudo port unload apache2
sudo port load apache2

add to php.ini:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Installing Eclipse for PHP

Eclipse for PHP developers

Trying to Debug with Eclipse

Creating a Project

New Project "MediaWiki" from source Create debug configuration for "index.php" with Debugger "XDebug", Default Port 9000

Timeout issues

Message:
Page load failed with error: timeout ...

Trying to Debug PHP Unit Tests with Eclipse

Install Makegood http://marketplace.eclipse.org/content/makegood-1 from Eclipse Marketplace (search makegood)

MakeGood

<?php
class TestMakeGood extends PHPUnit_Framework_TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>
vendor/phpunit/phpunit/phpunit  TestMakeGood.php 
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.

.

Time: 89 ms, Memory: 4.25Mb

OK (1 test, 5 assertions)

Mediawiki phpunit with MakeGood

We need a valid entry point composer.json in SemanticMediaWiki defines a script

  "phpunit": "php ../../tests/phpunit/phpunit.php -c phpunit.xml.dist",

Meaning that the phpunit.php from Mediawiki's tests/phpunit/phpunit.php is called as an entry point.

MakeGood Trial
<?php
// This is a preload script to be used with
// the Eclipse makegood continuous integration plugin
// see https://github.com/piece/makegood/releases
// create a maintainance derived entry point
error_reporting(E_ALL);
if ( php_sapi_name() !== 'cli' ) {
	die( 'MakeGoodPreload can only be called from PHP CLI' );
}
global 
	$IP,
	$self,
	$wgCommandLineMode,
	$wgConfigRegistry,
	$wgContLang,
	$wgDBtype,
	$wgLocalisationCacheConf,
	$wgMainCacheType, 
	$wgMessageCacheType, 
	$wgParserCacheType,
	$wgObjectCaches,
	$wgVersion,
	$wgMWLoggerDefaultSpi;

$dir=dirname(dirname(dirname(dirname( __FILE__ ))));
putenv('MW_INSTALL_PATH='.$dir);
$IP=$dir;
// we can't use Maintenance.php as an entry point due to the way
// shouldExecute is implemented in doMaintenance.php
// we are forced to cut & paste programming here :-(
$self="MakeGoodPreload";
# Define us as being in MediaWiki
define( 'MEDIAWIKI', true );
$wgCommandLineMode = true;
# Start the autoloader, so that extensions can derive classes from core files
require_once "$IP/includes/AutoLoader.php";
# Grab profiling functions
require_once "$IP/includes/profiler/ProfilerFunctions.php";

# Start the profiler
$wgProfiler = array();
if ( file_exists( "$IP/StartProfiler.php" ) ) {
	require "$IP/StartProfiler.php";
}

// Some other requires
require_once "$IP/includes/Defines.php";
require_once "$IP/includes/DefaultSettings.php";
require_once "$IP/includes/GlobalFunctions.php";

# Load composer's autoloader if present
if ( is_readable( "$IP/vendor/autoload.php" ) ) {
	require_once "$IP/vendor/autoload.php";
}

if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
	# Use a callback function to configure MediaWiki
	call_user_func( MW_CONFIG_CALLBACK );
}

require_once "$IP/includes/Setup.php";
$config=ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
phpunit.php
#!/usr/bin/env php
<?php
/**
 * Bootstrapping for MediaWiki PHPUnit tests
 *
 * @file
 */

// Set a flag which can be used to detect when other scripts have been entered
// through this entry point or not.
define( 'MW_PHPUNIT_TEST', true );

// Start up MediaWiki in command-line mode
require_once dirname( dirname( __DIR__ ) ) . "/maintenance/Maintenance.php";

class PHPUnitMaintClass extends Maintenance {

	public static $additionalOptions = array(
		'regex' => false,
		'file' => false,
		'use-filebackend' => false,
		'use-bagostuff' => false,
		'use-jobqueue' => false,
		'keep-uploads' => false,
		'use-normal-tables' => false,
		'reuse-db' => false,
		'wiki' => false,
	);

	public function __construct() {
		parent::__construct();
		$this->addOption(
			'with-phpunitdir',
			'Directory to include PHPUnit from, for example when using a git '
				. 'fetchout from upstream. Path will be prepended to PHP `include_path`.',
			false, # not required
			true # need arg
		);
		$this->addOption(
			'debug-tests',
			'Log testing activity to the PHPUnitCommand log channel.',
			false, # not required
			false # no arg needed
		);
		$this->addOption( 'regex', 'Only run parser tests that match the given regex.', false, true );
		$this->addOption( 'file', 'File describing parser tests.', false, true );
		$this->addOption( 'use-filebackend', 'Use filebackend', false, true );
		$this->addOption( 'use-bagostuff', 'Use bagostuff', false, true );
		$this->addOption( 'use-jobqueue', 'Use jobqueue', false, true );
		$this->addOption( 'keep-uploads', 'Re-use the same upload directory for each test, don\'t delete it.', false, false );
		$this->addOption( 'use-normal-tables', 'Use normal DB tables.', false, false );
		$this->addOption( 'reuse-db', 'Init DB only if tables are missing and keep after finish.', false, false );
	}

	public function finalSetup() {
		parent::finalSetup();

		global $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType;
		global $wgLanguageConverterCacheType, $wgUseDatabaseMessages;
		global $wgLocaltimezone, $wgLocalisationCacheConf;
		global $wgDevelopmentWarnings;

		// Inject test autoloader
		require_once __DIR__ . '/../TestsAutoLoader.php';

		// wfWarn should cause tests to fail
		$wgDevelopmentWarnings = true;

		$wgMainCacheType = CACHE_NONE;
		$wgMessageCacheType = CACHE_NONE;
		$wgParserCacheType = CACHE_NONE;
		$wgLanguageConverterCacheType = CACHE_NONE;

		$wgUseDatabaseMessages = false; # Set for future resets

		// Assume UTC for testing purposes
		$wgLocaltimezone = 'UTC';

		$wgLocalisationCacheConf['storeClass'] = 'LCStoreNull';

		// Bug 44192 Do not attempt to send a real e-mail
		Hooks::clear( 'AlternateUserMailer' );
		Hooks::register(
			'AlternateUserMailer',
			function () {
				return false;
			}
		);
		// xdebug's default of 100 is too low for MediaWiki
		ini_set( 'xdebug.max_nesting_level', 1000 );
	}

	public function execute() {
		global $IP;

		// Deregister handler from MWExceptionHandler::installHandle so that PHPUnit's own handler
		// stays in tact.
		// Has to in execute() instead of finalSetup(), because finalSetup() runs before
		// doMaintenance.php includes Setup.php, which calls MWExceptionHandler::installHandle().
		restore_error_handler();

		$this->forceFormatServerArgv();

		# Make sure we have --configuration or PHPUnit might complain
		if ( !in_array( '--configuration', $_SERVER['argv'] ) ) {
			//Hack to eliminate the need to use the Makefile (which sucks ATM)
			array_splice( $_SERVER['argv'], 1, 0,
				array( '--configuration', $IP . '/tests/phpunit/suite.xml' ) );
		}

		# --with-phpunitdir let us override the default PHPUnit version
		# Can use with either or phpunit.phar in the directory or the
		# full PHPUnit code base.
		if ( $this->hasOption( 'with-phpunitdir' ) ) {
			$phpunitDir = $this->getOption( 'with-phpunitdir' );

			# prepends provided PHPUnit directory or phar
			$this->output( "Will attempt loading PHPUnit from `$phpunitDir`\n" );
			set_include_path( $phpunitDir . PATH_SEPARATOR . get_include_path() );

			# Cleanup $args array so the option and its value do not
			# pollute PHPUnit
			$key = array_search( '--with-phpunitdir', $_SERVER['argv'] );
			unset( $_SERVER['argv'][$key] ); // the option
			unset( $_SERVER['argv'][$key + 1] ); // its value
			$_SERVER['argv'] = array_values( $_SERVER['argv'] );
		}

		if ( !wfIsWindows() ) {
			# If we are not running on windows then we can enable phpunit colors
			# Windows does not come anymore with ANSI.SYS loaded by default
			# PHPUnit uses the suite.xml parameters to enable/disable colors
			# which can be then forced to be enabled with --colors.
			# The below code injects a parameter just like if the user called
			# Probably fix bug 29226
			$key = array_search( '--colors', $_SERVER['argv'] );
			if ( $key === false ) {
				array_splice( $_SERVER['argv'], 1, 0, '--colors' );
			}
		}

		# Makes MediaWiki PHPUnit directory includable so the PHPUnit will
		# be able to resolve relative files inclusion such as suites/*
		# PHPUnit uses stream_resolve_include_path() internally
		# See bug 32022
		$key = array_search( '--include-path', $_SERVER['argv'] );
		if ( $key === false ) {
			array_splice( $_SERVER['argv'], 1, 0,
				__DIR__
				. PATH_SEPARATOR
				. get_include_path()
			);
			array_splice( $_SERVER['argv'], 1, 0, '--include-path' );
		}

		$key = array_search( '--debug-tests', $_SERVER['argv'] );
		if ( $key !== false && array_search( '--printer', $_SERVER['argv'] ) === false ) {
			unset( $_SERVER['argv'][$key] );
			array_splice( $_SERVER['argv'], 1, 0, 'MediaWikiPHPUnitTestListener' );
			array_splice( $_SERVER['argv'], 1, 0, '--printer' );
		}

		foreach ( self::$additionalOptions as $option => $default ) {
			$key = array_search( '--' . $option, $_SERVER['argv'] );
			if ( $key !== false ) {
				unset( $_SERVER['argv'][$key] );
				if ( $this->mParams[$option]['withArg'] ) {
					self::$additionalOptions[$option] = $_SERVER['argv'][$key + 1];
					unset( $_SERVER['argv'][$key + 1] );
				} else {
					self::$additionalOptions[$option] = true;
				}
			}
		}

	}

	public function getDbType() {
		return Maintenance::DB_ADMIN;
	}

	/**
	 * Force the format of elements in $_SERVER['argv']
	 *  - Split args such as "wiki=enwiki" into two separate arg elements "wiki" and "enwiki"
	 */
	private function forceFormatServerArgv() {
		$argv = array();
		foreach ( $_SERVER['argv'] as $key => $arg ) {
			if ( $key === 0 ) {
				$argv[0] = $arg;
			} elseif ( strstr( $arg, '=' ) ) {
				foreach ( explode( '=', $arg, 2 ) as $argPart ) {
					$argv[] = $argPart;
				}
			} else {
				$argv[] = $arg;
			}
		}
		$_SERVER['argv'] = $argv;
	}

}

$maintClass = 'PHPUnitMaintClass';
require RUN_MAINTENANCE_IF_MAIN;

// Prevent segfault when we have lots of unit tests (bug 62623)
if ( version_compare( PHP_VERSION, '5.4.0', '<' ) ) {
	register_shutdown_function( function () {
		gc_collect_cycles();
		gc_disable();
	} );
}


$ok = false;

foreach ( array(
	stream_resolve_include_path( 'phpunit.phar' ),
	'PHPUnit/Runner/Version.php',
	'PHPUnit/Autoload.php'
) as $includePath ) {
	@include_once $includePath;
	if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
		$ok = true;
		break;
	}
}

if ( !$ok ) {
	die( "Couldn't find a usable PHPUnit.\n" );
}

$puVersion = PHPUnit_Runner_Version::id();
if ( $puVersion !== '@package_version@' && version_compare( $puVersion, '3.7.0', '<' ) ) {
	die( "PHPUnit 3.7.0 or later required; you have {$puVersion}.\n" );
}

PHPUnit_TextUI_Command::main();
1) SMW\Tests\InTextAnnotationParserTest::testTextParse with data set #2 (0, array(array(true), false, true), 'Lorem ipsum dolor sit &$% con...Donec.', array('class="smw-highlighter" data-...nline"', false, 3, array('Foo', 'Bar', '_ERRC'), array('Tincidunt semper', '9001')))
ConfigException: GlobalVarConfig::get: undefined option: 'PasswordDefault'
some more globals
$this->mInterwikiMagic = $wgInterwikiMagic;
		$this->mAllowExternalImages = $wgAllowExternalImages;
		$this->mAllowExternalImagesFrom = $wgAllowExternalImagesFrom;
		$this->mEnableImageWhitelist = $wgEnableImageWhitelist;
		$this->mAllowSpecialInclusion = $wgAllowSpecialInclusion;
		$this->mMaxIncludeSize = $wgMaxArticleSize * 1024;
		$this->mMaxPPNodeCount = $wgMaxPPNodeCount;
		$this->mMaxGeneratedPPNodeCount = $wgMaxGeneratedPPNodeCount;
		$this->mMaxPPExpandDepth = $wgMaxPPExpandDepth;
		$this->mMaxTemplateDepth = $wgMaxTemplateDepth;
		$this->mExpensiveParserFunctionLimit = $wgExpensiveParserFunctionLimit;
		$this->mCleanSignatures = $wgCleanSignatures;
		$this->mExternalLinkTarget = $wgExternalLinkTarget;
		$this->mDisableContentConversion = $wgDisableLangConversion;
		$this->mDisableTitleConversion = $wgDisableLangConversion || $wgDisableTitleConversion;
get globals
#!/bin/bash
# get all Mediawiki global variables
# WF 2015-12-28

collect() {
for f in `find . -name '*.php'`
do
  grep global $f > /dev/null
  if [ $? -eq 0 ]
  then
    grep "global .wg" $f
    grep "global .smwg" $f
  fi
done
}

globals=/tmp/Mediawikiglobals.txt
if [ ! -f $globals ]
then
  collect > $globals
fi
  cat $globals | grep -v "*" | awk '
{ 
  gsub("global","");
  gsub("//.*","");
  gsub("#.*","");
  gsub(" ","");
  gsub(";","");
  gsub("\t","");
  n=split($0,vars,",");
  for (i = 0; ++i <= n;) {
    print vars[i];
  }
}
' | sort -u | awk '
BEGIN { delim="" }
{ print $0,delim; delim=","}
'
  1 <?php
  2 // This is a preload script to be used with
  3 // the Eclipse makegood continuous integration plugin
  4 // see https://github.com/piece/makegood/releases
  5 // create a maintainance derived entry point
  6 error_reporting(E_ALL);
  7 if ( php_sapi_name() !== 'cli' ) {
  8 	die( 'MakeGoodPreload can only be called from PHP CLI' );
  9 }
 10 global $IP,$GLOBALS,
 11 $self,
 12 $ceAllowConfirmedEmail ,
 13 $cgScriptPath ,
 14 $egPushBatchSize ,
 15 $egPushBulkWorkers ,
 16 $egPushIncFiles ,
 17 $egPushIncTemplates ,
 18 $egPushTargets ,
 19 $egVariablesDisabledFunctions,
 20 $messageMemc ,
 21 $parserMemc ,
 22 $smwgAllowRecursiveExport ,
 23 $smwgBrowseShowAll ,
 24 $smwgContLang,
 25 $smwgEnabledResultFormatsWithRecursiveAnnotationSupport ,
 26 $smwgExportAll ,
 27 $smwgExportBacklinks ,
 28 $smwgHistoricTypeNamespace ,
 29 $smwgMaxPropertyValues ,
 30 $smwgNamespace,
 31 $smwgQEnabled ,
 32 $smwgQFeatures ,
 33 $smwgQMaxInlineLimit ,
 34 $smwgTypePagingLimit ,
 35 $wgAccountCreationThrottle ,
 36 $wgAction ,
 37 $wgActionPaths ,
 38 $wgActions ,
 39 $wgActiveUserDays ,
 40 $wgAdaptiveMessageCache ,
 41 $wgAddGroups ,
 42 $wgAdditionalMailParams ,
 43 $wgAdvancedSearchHighlighting ,
 44 $wgAjaxEditStash ,
 45 $wgAllDBsAreLocalhost ,
 46 $wgAllUnicodeFixes ,
 47 $wgAllowAsyncCopyUploads ,
 48 $wgAllowCiteGroups ,
 49 $wgAllowCopyUploads ,
 50 $wgAllowDisplayTitle ,
 51 $wgAllowExternalImages ,
 52 $wgAllowHTMLEmail ,
 53 $wgAllowImageMoving ,
 54 $wgAllowImageTag ,
 55 $wgAllowJavaUploads ,
 56 $wgAllowMicrodataAttributes ,
 57 $wgAllowRdfaAttributes ,
 58 $wgAllowSchemaUpdates ,
 59 $wgAllowSlowParserFunctions ,
 60 $wgAllowTitlesInSVG ,
 61 $wgAllowUserCss ,
 62 $wgAllowUserJs ,
 63 $wgAlwaysUseTidy ,
 64 $wgAmericanDates ,
 65 $wgAntivirus ,
 66 $wgAntivirusRequired ,
 67 $wgAntivirusSetup ,
 68 $wgApplyIpBlocksToXff ,
 69 $wgArticle ,
 70 $wgArticleCountMethod ,
 71 $wgArticlePath ,
 72 $wgArticleRobotPolicies ,
 73 $wgAttemptFailureEpoch ,
 74 $wgAuth ,
 75 $wgAutoblockExpiry ,
 76 $wgAutoloadClasses ,
 77 $wgAutoloadLocalClasses ,
 78 $wgAutopromote ,
 79 $wgAutopromoteOnce ,
 80 $wgAutopromoteOnceLogInRC ,
 81 $wgAvailableRights ,
 82 $wgBarBarBar ,
 83 $wgBlacklistSettings ,
 84 $wgBlockAllowsUTEdit ,
 85 $wgBlockCIDRLimit ,
 86 $wgBlockDisablesLogin ,
 87 $wgBrowserBlackList ,
 88 $wgCacheDirectory ,
 89 $wgCacheEpoch ,
 90 $wgCachePages ,
 91 $wgCachePrefix ,
 92 $wgCanonicalNamespaceNames ,
 93 $wgCanonicalServer ,
 94 $wgCapitalLinkOverrides ,
 95 $wgCapitalLinks ,
 96 $wgCaptcha ,
 97 $wgCaptchaBadLoginAttempts ,
 98 $wgCaptchaBadLoginExpiration ,
 99 $wgCaptchaClass ,
100 $wgCaptchaDeleteOnSolve ,
101 $wgCaptchaDirectory ,
102 $wgCaptchaDirectoryLevels ,
103 $wgCaptchaFileBackend ,
104 $wgCaptchaQuestions ,
105 $wgCaptchaRegexes ,
106 $wgCaptchaSecret ,
107 $wgCaptchaSessionExpiration ,
108 $wgCaptchaStorageClass ,
109 $wgCaptchaTriggers ,
110 $wgCaptchaTriggersOnNamespace ,
111 $wgCaptchaWhitelist ,
112 $wgCaptchaWhitelistIP ,
113 $wgCargo24HourTime ,
114 $wgCargoAllowedSQLFunctions ,
115 $wgCargoDBname ,
116 $wgCargoDBpassword ,
117 $wgCargoDBserver ,
118 $wgCargoDBtype ,
119 $wgCargoDBuser ,
120 $wgCargoDecimalMark ,
121 $wgCargoDefaultQueryLimit ,
122 $wgCargoDigitGroupingCharacter ,
123 $wgCargoDrilldownLargestFontSize ,
124 $wgCargoDrilldownMinValuesForComboBox ,
125 $wgCargoDrilldownNumRangesForNumbers ,
126 $wgCargoDrilldownSmallestFontSize ,
127 $wgCargoDrilldownUseTabs ,
128 $wgCargoFieldTypes ,
129 $wgCargoMapClusteringMinimum ,
130 $wgCargoMaxQueryLimit ,
131 $wgCargoRecurringEventMaxInstances ,
132 $wgCascadingRestrictionLevels ,
133 $wgCategoryCollation ,
134 $wgCheckFileExtensions ,
135 $wgCiteCacheReferences ,
136 $wgClockSkewFudge ,
137 $wgCommandLineDarkBg ,
138 $wgCommandLineMode ,
139 $wgCompressRevisions ,
140 $wgConf ,
141 $wgConfigRegistry ,
142 $wgContLang ,
143 $wgContLanguageCode ,
144 $wgContentHandlerTextFallback ,
145 $wgContentHandlerUseDB ,
146 $wgContentHandlers ,
147 $wgContentNamespaces ,
148 $wgCookieDomain ,
149 $wgCookieExpiration ,
150 $wgCookieHttpOnly ,
151 $wgCookiePath ,
152 $wgCookiePrefix ,
153 $wgCookieSecure ,
154 $wgCopyUploadAsyncTimeout ,
155 $wgCopyUploadProxy ,
156 $wgCopyUploadTimeout ,
157 $wgCopyUploadsDomains ,
158 $wgCopyrightIcon ,
159 $wgCustomConvertCommand ,
160 $wgDBOracleDRCP ,
161 $wgDBTableOptions ,
162 $wgDBWindowsAuthentication ,
163 $wgDBadminpassword ,
164 $wgDBadminuser ,
165 $wgDBcompress ,
166 $wgDBerrorLog ,
167 $wgDBerrorLogTZ ,
168 $wgDBmwschema ,
169 $wgDBmysql5 ,
170 $wgDBname ,
171 $wgDBpassword ,
172 $wgDBport ,
173 $wgDBprefix ,
174 $wgDBserver ,
175 $wgDBservers ,
176 $wgDBssl ,
177 $wgDBtype ,
178 $wgDBuser ,
179 $wgDebugComments ,
180 $wgDebugDBTransactions ,
181 $wgDebugDumpSql ,
182 $wgDebugDumpSqlLength ,
183 $wgDebugLogFile ,
184 $wgDebugLogGroups ,
185 $wgDebugLogPrefix ,
186 $wgDebugRawPage ,
187 $wgDebugTidy ,
188 $wgDebugTimestamps ,
189 $wgDebugToolbar ,
190 $wgDefaultExternalStore ,
191 $wgDefaultLanguageVariant ,
192 $wgDefaultRobotPolicy ,
193 $wgDefaultSkin ,
194 $wgDefaultUserOptions ,
195 $wgDeferredUpdateList ,
196 $wgDeleteRevisionsLimit ,
197 $wgDeprecationReleaseLimit ,
198 $wgDevelopmentWarnings ,
199 $wgDiff ,
200 $wgDiff3 ,
201 $wgDirectoryMode ,
202 $wgDisableAnonTalk ,
203 $wgDisableCookieCheck ,
204 $wgDisableInternalSearch ,
205 $wgDisableLangConversion ,
206 $wgDisableOutputCompression ,
207 $wgDisableQueryPageUpdate ,
208 $wgDisableSearchUpdate ,
209 $wgDisableTitleConversion ,
210 $wgDisableUploadScriptChecks ,
211 $wgDisabledVariants ,
212 $wgDjvuDump ,
213 $wgDjvuOutputExtension ,
214 $wgDjvuPostProcessor ,
215 $wgDjvuRenderer ,
216 $wgDjvuToXML ,
217 $wgDjvuTxt ,
218 $wgDnsBlacklistUrls ,
219 $wgDummyLanguageCodes ,
220 $wgEditEncoding ,
221 $wgEmailAuthentication ,
222 $wgEmailConfirmToEdit ,
223 $wgEnableAPI ,
224 $wgEnableAutoRotation ,
225 $wgEnableDnsBlacklist ,
226 $wgEnableEmail ,
227 $wgEnableJavaScriptTest ,
228 $wgEnableParserCache ,
229 $wgEnableParserLimitReporting ,
230 $wgEnableScaryTranscluding ,
231 $wgEnableSearchContributorsByIP ,
232 $wgEnableSidebarCache ,
233 $wgEnableUploads ,
234 $wgEnableUserEmail ,
235 $wgEnableWriteAPI ,
236 $wgEnotifFromEditor ,
237 $wgEnotifImpersonal ,
238 $wgEnotifMaxRecips ,
239 $wgEnotifMinorEdits ,
240 $wgEnotifRevealEditorAddress ,
241 $wgEnotifUseJobQ ,
242 $wgEnotifUseRealName ,
243 $wgEnotifUserTalk ,
244 $wgEnotifWatchlist ,
245 $wgExceptionHooks ,
246 $wgExemptFromUserRobotsControl ,
247 $wgExiv2Command ,
248 $wgExperimentalHtmlIds ,
249 $wgExtModifiedFields ,
250 $wgExtNewFields ,
251 $wgExtNewIndexes ,
252 $wgExtNewTables ,
253 $wgExtPGAlteredFields ,
254 $wgExtPGNewFields ,
255 $wgExtensionAssetsPath ,
256 $wgExtensionCredits ,
257 $wgExtensionDirectory ,
258 $wgExtensionEntryPointListFiles ,
259 $wgExtensionFunctions,
260 $wgExtensionInfoMTime ,
261 $wgExtensionMessagesFiles ,
262 $wgExternalDiffEngine ,
263 $wgExternalLinkTarget ,
264 $wgExternalServers ,
265 $wgExternalStores ,
266 $wgExtraGenderNamespaces ,
267 $wgExtraInterlanguageLinkPrefixes ,
268 $wgExtraLanguageNames ,
269 $wgExtraNamespaces ,
270 $wgFallbackSkin ,
271 $wgFavicon ,
272 $wgFeed ,
273 $wgFeedCacheTimeout ,
274 $wgFeedClasses ,
275 $wgFeedDiffCutoff ,
276 $wgFileBackends ,
277 $wgFileBlacklist ,
278 $wgFileCacheDepth ,
279 $wgFileCacheDirectory ,
280 $wgFileExtensions ,
281 $wgFilterLogTypes ,
282 $wgFixArabicUnicode ,
283 $wgFixMalayalamUnicode ,
284 $wgFooterIcons ,
285 $wgForceUIMsgAsContentMsg ,
286 $wgForeignFileRepos ,
287 $wgGadgetsCaching ,
288 $wgGeSHiSupportedLanguages ,
289 $wgGitBin ,
290 $wgGitRepositoryViewers ,
291 $wgGrammarForms ,
292 $wgGroupPermissions ,
293 $wgGroupsAddToSelf ,
294 $wgGroupsRemoveFromSelf ,
295 $wgHKDFAlgorithm ,
296 $wgHKDFSecret ,
297 $wgHTCPMulticastTTL ,
298 $wgHTCPRouting ,
299 $wgHTTPConnectTimeout ,
300 $wgHTTPProxy ,
301 $wgHTTPTimeout ,
302 $wgHeaderTabsAutomaticNamespaces ,
303 $wgHeaderTabsDefaultFirstTab ,
304 $wgHeaderTabsEditTabLink ,
305 $wgHeaderTabsRenderSingleTab ,
306 $wgHeaderTabsScriptPath ,
307 $wgHeaderTabsStyle ,
308 $wgHeaderTabsTabIndexes ,
309 $wgHeaderTabsUseHistory ,
310 $wgHiddenPrefs ,
311 $wgHideInterlanguageLinks ,
312 $wgHideUserContribLimit ,
313 $wgHooks ,
314 $wgHtml5Version ,
315 $wgIgnoreImageErrors ,
316 $wgIllegalFileChars ,
317 $wgImageLimits ,
318 $wgImageMagickConvertCommand ,
319 $wgImgAuthDetails ,
320 $wgImgAuthUrlPathMap ,
321 $wgImplicitGroups ,
322 $wgIncludeLegacyJavaScript ,
323 $wgInternalServer ,
324 $wgInterwikiCache ,
325 $wgInterwikiCentralDB ,
326 $wgInterwikiExpiry ,
327 $wgInterwikiFallbackSite ,
328 $wgInterwikiMagic ,
329 $wgInterwikiScopes ,
330 $wgInterwikiViewOnly ,
331 $wgInvalidRedirectTargets ,
332 $wgInvalidUsernameCharacters ,
333 $wgJobBackoffThrottling ,
334 $wgJobClasses ,
335 $wgJobQueueAggregator ,
336 $wgJobQueueMigrationConfig ,
337 $wgJobTypeConf ,
338 $wgJobTypesExcludedFromDefaultQueue ,
339 $wgJpegTran ,
340 $wgJsMimeType ,
341 $wgLBFactoryConf ,
342 $wgLang ,
343 $wgLangObjCacheSize ,
344 $wgLanguageCode ,
345 $wgLanguageConverterCacheType ,
346 $wgLegacyEncoding ,
347 $wgLegacySchemaConversion ,
348 $wgLegalTitleChars ,
349 $wgLinkHolderBatchSize ,
350 $wgLoadScript ,
351 $wgLocalDatabases ,
352 $wgLocalFileRepo ,
353 $wgLocalInterwikis ,
354 $wgLocalTZoffset ,
355 $wgLocalVirtualHosts ,
356 $wgLocalisationCacheConf ,
357 $wgLocalisationUpdateDirectory ,
358 $wgLocalisationUpdateRepositories ,
359 $wgLocalisationUpdateRepository ,
360 $wgLocaltimezone ,
361 $wgLockManagers ,
362 $wgLogActions ,
363 $wgLogActionsHandlers ,
364 $wgLogAutopatrol ,
365 $wgLogExceptionBacktrace ,
366 $wgLogHeaders ,
367 $wgLogNames ,
368 $wgLogRestrictions ,
369 $wgLogSpamBlacklistHits ,
370 $wgLogTypes ,
371 $wgLoginLanguageSelector ,
372 $wgLogo ,
373 $wgMSL_FileTypes ,
374 $wgMSU_autoIndex ,
375 $wgMSU_checkAutoCat ,
376 $wgMSU_confirmReplace ,
377 $wgMSU_imgParams ,
378 $wgMSU_showAutoCat ,
379 $wgMSU_useDragDrop ,
380 $wgMSU_useMsLinks ,
381 $wgMWLoggerDefaultSpi ,
382 $wgMainCacheType ,
383 $wgMangleFlashPolicy ,
384 $wgMaxAnimatedGifArea ,
385 $wgMaxArticleSize ,
386 $wgMaxImageArea ,
387 $wgMaxMsgCacheEntrySize ,
388 $wgMaxNameChars ,
389 $wgMaxRedirects ,
390 $wgMaxShellMemory ,
391 $wgMaxSigChars ,
392 $wgMaxSquidPurgeTitles ,
393 $wgMaxTocLevel ,
394 $wgMaxUploadSize ,
395 $wgMaximalPasswordLength ,
396 $wgMaximumMovedPages ,
397 $wgMediaHandlers ,
398 $wgMemCachedServers ,
399 $wgMemCachedTimeout ,
400 $wgMemc ,
401 $wgMemoryLimit ,
402 $wgMessageCacheType ,
403 $wgMessagesDirs ,
404 $wgMetaNamespace ,
405 $wgMetaNamespaceTalk ,
406 $wgMimeType ,
407 $wgMimeTypeBlacklist ,
408 $wgMinimalPasswordLength ,
409 $wgMiserMode ,
410 $wgMsgCacheExpiry ,
411 $wgNamespaceAliases ,
412 $wgNamespaceContentModels ,
413 $wgNamespaceProtection ,
414 $wgNamespaceRobotPolicies ,
415 $wgNamespacesToBeSearchedDefault ,
416 $wgNamespacesWithSubpages ,
417 $wgNewPasswordExpiry ,
418 $wgNewUserLog ,
419 $wgNoFollowDomainExceptions ,
420 $wgNoFollowLinks ,
421 $wgNoFollowNsExceptions ,
422 $wgNoReplyAddress ,
423 $wgNonincludableNamespaces ,
424 $wgObjectCacheSessionExpiry ,
425 $wgObjectCaches ,
426 $wgOpenSearchTemplate ,
427 $wgOut ,
428 $wgOverrideHostname ,
429 $wgPFEnableStringFunctions ,
430 $wgPFStringLengthLimit ,
431 $wgPageLanguageUseDB ,
432 $wgPagePropLinkInvalidations ,
433 $wgPagePropsHaveSortkey ,
434 $wgPageSchemasHandlerClasses ,
435 $wgParser ,
436 $wgParserCacheExpireTime ,
437 $wgParserCacheType ,
438 $wgParserConf ,
439 $wgParserTestFiles ,
440 $wgPasswordAttemptThrottle ,
441 $wgPasswordConfig,
442 $wgPasswordDefault,
443 $wgPasswordExpirationDays ,
444 $wgPasswordExpireGrace ,
445 $wgPasswordReminderResendTime ,
446 $wgPasswordResetRoutes ,
447 $wgPasswordSalt ,
448 $wgPasswordSender ,
449 $wgPdfBookTab ,
450 $wgPdfCreateThumbnailsInJobQueue ,
451 $wgPdfHandlerDpi ,
452 $wgPdfHandlerJpegQuality ,
453 $wgPdfInfo ,
454 $wgPdfOutputExtension ,
455 $wgPdfPostProcessor ,
456 $wgPdfProcessor ,
457 $wgPdftoText ,
458 $wgPhpCli ,
459 $wgPoolCounterConf ,
460 $wgPreloadJavaScriptMwUtil ,
461 $wgPreprocessorCacheThreshold ,
462 $wgPreviewOnOpenNamespaces ,
463 $wgProfileLimit ,
464 $wgProfilePerHost ,
465 $wgProfiler ,
466 $wgProxyList ,
467 $wgProxyWhitelist ,
468 $wgPutIPinRC ,
469 $wgQueryCacheLimit ,
470 $wgRCEngines ,
471 $wgRCFeeds ,
472 $wgRCMaxAge ,
473 $wgRateLimits ,
474 $wgRateLimitsExcludedIPs ,
475 $wgRawHtml ,
476 $wgReCaptchaPrivateKey ,
477 $wgReCaptchaPublicKey ,
478 $wgReCaptchaTheme ,
479 $wgReadOnly ,
480 $wgReadOnlyFile ,
481 $wgRecentChangesFlags ,
482 $wgRedirectOnLogin ,
483 $wgRedirectSources ,
484 $wgRegisterInternalExternals ,
485 $wgRemoveGroups ,
486 $wgRenderHashAppend ,
487 $wgRequest ,
488 $wgRequestTime ,
489 $wgReservedUsernames ,
490 $wgResourceBasePath ,
491 $wgResourceLoaderDebug ,
492 $wgResourceLoaderMinifierMaxLineLength ,
493 $wgResourceLoaderMinifierStatementsOnOwnLine ,
494 $wgResponsiveImages ,
495 $wgRestrictDisplayTitle ,
496 $wgRestrictionLevels ,
497 $wgRestrictionTypes ,
498 $wgRevisionCacheExpiry ,
499 $wgRevokePermissions ,
500 $wgRightsIcon ,
501 $wgRightsPage ,
502 $wgRightsText ,
503 $wgRightsUrl ,
504 $wgSMTP ,
505 $wgSQLMode ,
506 $wgSQLiteDataDir ,
507 $wgSVGConverter ,
508 $wgSVGConverterPath ,
509 $wgSVGConverters ,
510 $wgSVGMaxSize ,
511 $wgSVGMetadataCutoff ,
512 $wgScript ,
513 $wgScriptExtension ,
514 $wgScriptPath ,
515 $wgSearchHighlightBoundaries ,
516 $wgSearchType ,
517 $wgSearchTypeAlternatives ,
518 $wgSecretKey ,
519 $wgSecureLogin ,
520 $wgSemiprotectedRestrictionLevels ,
521 $wgSend404Code ,
522 $wgServer ,
523 $wgServerName ,
524 $wgSessionCacheType ,
525 $wgSessionsInMemcached ,
526 $wgSessionsInObjectCache ,
527 $wgSharedDB ,
528 $wgSharedPrefix ,
529 $wgSharedSchema ,
530 $wgSharedTables ,
531 $wgSharpenParameter ,
532 $wgSharpenReductionThreshold ,
533 $wgShellLocale ,
534 $wgShowArchiveThumbnails ,
535 $wgShowDBErrorBacktrace ,
536 $wgShowDebug ,
537 $wgShowEXIF ,
538 $wgShowExceptionDetails ,
539 $wgShowHostnames ,
540 $wgShowIPinHeader ,
541 $wgShowRollbackEditCount ,
542 $wgShowSQLErrors ,
543 $wgShowUpdatedMarker ,
544 $wgSidebarCacheExpiry ,
545 $wgSiteNotice ,
546 $wgSiteStatsAsyncFactor ,
547 $wgSiteTypes ,
548 $wgSitemapNamespaces ,
549 $wgSitemapNamespacesPriorities ,
550 $wgSitename ,
551 $wgSkipSkins ,
552 $wgSpamBlacklistFiles ,
553 $wgSpamBlacklistSettings ,
554 $wgSpamRegex ,
555 $wgSpecialPageCacheUpdates ,
556 $wgSpecialPageGroups ,
557 $wgSpecialPages ,
558 $wgSpecialVersionShowHooks ,
559 $wgSquidMaxage ,
560 $wgSquidPurgeUseHostHeader ,
561 $wgSquidServers ,
562 $wgSquidServersNoPurge ,
563 $wgStrictFileExtensions ,
564 $wgStyleDirectory ,
565 $wgStylePath ,
566 $wgStyleVersion ,
567 $wgSummarySpamRegex ,
568 $wgSyntaxHighlightDefaultLang ,
569 $wgSyntaxHighlightKeywordLinks ,
570 $wgSyntaxHighlightModels ,
571 $wgSysopEmailBans ,
572 $wgTextModelsToParse ,
573 $wgTexvc ,
574 $wgThumbLimits ,
575 $wgThumbUpright ,
576 $wgThumbnailBuckets ,
577 $wgThumbnailEpoch ,
578 $wgThumbnailMinimumBucketDistance ,
579 $wgTidyBin ,
580 $wgTidyConf ,
581 $wgTidyInternal ,
582 $wgTidyOpts ,
583 $wgTiffThumbnailType ,
584 $wgTitle ,
585 $wgTitleBlacklistCaching ,
586 $wgTitleBlacklistLogHits ,
587 $wgTitleBlacklistSources ,
588 $wgTitleBlacklistUsernameSources ,
589 $wgTmpDirectory ,
590 $wgTranscludeCacheExpiry ,
591 $wgTranslateNumerals ,
592 $wgTrivialMimeDetection ,
593 $wgTrustedMediaFormats ,
594 $wgUDPProfilerFormatString ,
595 $wgUDPProfilerHost ,
596 $wgUDPProfilerPort ,
597 $wgUFAllowedNamespaces ,
598 $wgUFEnablePersonalDataFunctions ,
599 $wgUFEnableSpecialContexts ,
600 $wgUpdateCompatibleMetadata ,
601 $wgUpdateRowsPerJob ,
602 $wgUpdateRowsPerQuery ,
603 $wgUploadDirectory ,
604 $wgUploadMaintenance ,
605 $wgUploadMissingFileUrl ,
606 $wgUploadNavigationUrl ,
607 $wgUploadPath ,
608 $wgUploadSizeWarning ,
609 $wgUploadStashMaxAge ,
610 $wgUploadThumbnailRenderHttpCustomDomain ,
611 $wgUploadThumbnailRenderHttpCustomHost ,
612 $wgUploadThumbnailRenderMap ,
613 $wgUploadThumbnailRenderMethod ,
614 $wgUrlProtocols ,
615 $wgUseAjax ,
616 $wgUseAutomaticEditSummaries ,
617 $wgUseCategoryBrowser ,
618 $wgUseCombinedLoginLink ,
619 $wgUseDatabaseMessages ,
620 $wgUseETag ,
621 $wgUseEnotif ,
622 $wgUseFileCache ,
623 $wgUseGzip ,
624 $wgUseImageMagick ,
625 $wgUseImageResize ,
626 $wgUseLocalMessageCache ,
627 $wgUseMediaWikiUIEverywhere ,
628 $wgUseNPPatrol ,
629 $wgUsePathInfo ,
630 $wgUsePrivateIPs ,
631 $wgUseRCPatrol ,
632 $wgUseSiteCss ,
633 $wgUseSquid ,
634 $wgUseTagFilter ,
635 $wgUseTidy ,
636 $wgUseXVO ,
637 $wgUser ,
638 $wgUserEmailConfirmationTokenExpiry ,
639 $wgUserrightsInterwikiDelimiter ,
640 $wgUsersNotifiedOnAllChanges ,
641 $wgValidateAllHtml ,
642 $wgVariantArticlePath ,
643 $wgVaryOnXFP ,
644 $wgVerifyMimeType ,
645 $wgVersion ,
646 $wgWellFormedXml ,
647 $wgWhitelistRead ,
648 $wgWhitelistReadRegexp ,
649 $wgWikiEditorFeatures ,
650 $wgWikimediaJenkinsCI ,
651 $wgXhtmlNamespaces ,
652 $wgsomething;
653 $dir=dirname(dirname(dirname(dirname( __FILE__ ))));
654 putenv('MW_INSTALL_PATH='.$dir);
655 $IP=$dir;
656 require_once('maintenance/commandLine.inc');
Category:Workdocumentation