see
Environment[edit]
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[edit]
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[edit]
Eclipse for PHP developers
Trying to Debug with Eclipse[edit]
Creating a Project[edit]
New Project "MediaWiki" from source Create debug configuration for "index.php" with Debugger "XDebug", Default Port 9000
Timeout issues[edit]
Message:
Page load failed with error: timeout ...
Trying to Debug PHP Unit Tests with Eclipse[edit]
Install Makegood http://marketplace.eclipse.org/content/makegood-1 from Eclipse Marketplace (search makegood)
MakeGood[edit]
- https://github.com/piece/makegood/wiki
- http://stackoverflow.com/questions/tagged/makegood
- http://web.archive.org/web/20140817181801/http://piece-framework.com/projects/makegood/wiki/MakeGood_User_Guide_1_7_0
- https://github.com/piece/makegood/issues/85
- http://stackoverflow.com/a/34483373/1497139
<?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[edit]
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[edit]
<?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[edit]
#!/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[edit]
$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[edit]
#!/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');