* (bug 3350) Missing label for move talk page checkbox.
* (bug 2108) Sort entries when using category browser
* (bug 2393) Fix MIME type for Atom feeds ( application/rss+atom )
+* Add ".deps.php" include-file preloaders for some dynamically-loaded
+ language and skin classes. Should help with the broken base-class
+ problem under PHP 5 with APC as opcode cache. See details:
+ http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html
=== Caveats ===
$wgLang = &$wgContLang;
} else {
wfSuppressWarnings();
+ // Preload base classes to work around APC/PHP5 bug
+ include_once("$IP/languages/$wgLangClass.deps.php");
include_once("$IP/languages/$wgLangClass.php");
wfRestoreWarnings();
# while code from www.php.net
while (false !== ($file = $skinDir->read())) {
- if(preg_match('/^([^.].*)\.php$/',$file, $matches)) {
+ // Skip non-PHP files, hidden files, and '.dep' includes
+ if(preg_match('/^([^.]*)\.php$/',$file, $matches)) {
$aSkin = $matches[1];
$wgValidSkinNames[strtolower($aSkin)] = $aSkin;
}
# Grab the skin class and initialise it. Each skin checks for PHPTal
# and will not load if it's not enabled.
+ wfSuppressWarnings();
+ // Preload base classes to work around APC/PHP5 bug
+ include_once( $IP.'/skins/'.$skinName.'.deps.php' );
+ wfRestoreWarnings();
require_once( $IP.'/skins/'.$skinName.'.php' );
# Check if we got if not failback to default skin
}
+# FIXME: Merge all UTF-8 support code into Language base class.
+# We no longer support Latin-1 charset.
+require_once( 'LanguageUtf8.php' );
+
# This should fail gracefully if there's not a localization available
wfSuppressWarnings();
+// Preload base classes to work around APC/PHP5 bug
+include_once( 'Language' . str_replace( '-', '_', ucfirst( $wgLanguageCode ) ) . '.deps.php' );
include_once( 'Language' . str_replace( '-', '_', ucfirst( $wgLanguageCode ) ) . '.php' );
wfRestoreWarnings();
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageAb.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageAv.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageAy.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageEs.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageBa.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageBm.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageFr.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageCe.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageCv.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageGem_alsatian.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageDe.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageGn.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageEs.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageIi.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_cn.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageKv.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageNah.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageEs.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageNap.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageIt.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageNon.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageIs.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageOs.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguagePt_br.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguagePt.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageQu.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageEs.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageTy.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageFr.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageUdm.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageRu.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageVec.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageIt.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZa.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_cn.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZh.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_cn.php" );
+require_once( "LanguageConverter.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZh_hk.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_tw.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZh_sg.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_cn.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZh_tw.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once( "LanguageZh_cn.php" );
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// Chick.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once('includes/SkinTemplate.php');
+require_once('MonoBook.php');
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// MonoBook.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once('includes/SkinTemplate.php');
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// MySkin.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once('includes/SkinTemplate.php');
+require_once('MonoBook.php');
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This file exists to ensure that base classes are preloaded before
+// Simple.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+
+require_once('includes/SkinTemplate.php');
+require_once('MonoBook.php');
+?>
\ No newline at end of file