Work-around for broken APC versions
authorAlexander Ebert <ebert@woltlab.com>
Sat, 8 Jun 2013 11:13:46 +0000 (13:13 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Sat, 8 Jun 2013 11:13:46 +0000 (13:13 +0200)
APC up to 3.1.3p1 breaks PHP's late static binding, the only way to support it is constantly clearing the opcode cache. This isn't the best solution, but it works out and does not prevent the user from using our software.

Sadly 3.1.3p1 (the last broken version) is the stable release available on Debian old-stable "Squeeze" :(

wcfsetup/install/files/global.php

index dec01e614dc74216bffacb211261b52cad10758e..f0a8b2cdfc5c2a17fb1129d3aad71945920adce0 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * @author     Marcel Werk
- * @copyright  2001-2011 WoltLab GmbH
+ * @copyright  2001-2013 WoltLab GmbH
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @package    com.woltlab.wcf
  * @category   Community Framework
@@ -9,6 +9,11 @@
 // define the wcf-root-dir
 define('WCF_DIR', dirname(__FILE__).'/');
 
+// APC below 3.1.4 breaks PHP's late static binding
+if (extension_loaded('apc') && strnatcmp(phpversion('apc'), '3.1.4') < 0) {
+       apc_clear_cache('opcode');
+}
+
 // initiate wcf core
 require_once(WCF_DIR.'lib/system/WCF.class.php');
 new wcf\system\WCF();