+// handle class autoloading:
+if (file_exists(__DIR__.'/../vendor/autoload.php')) {
+ // if the debugger is installed as top-level project with Composer, allow finding classes from dependencies
+ include_once(__DIR__.'/../vendor/autoload.php');
+} else {
+ // assume this is either a standalone install, or installed as Composer dependency
+ /// @todo if the latter is true, should we just not skip using the custom Autoloader, and let a top-level
+ /// debugger include this one, taking care of autoloading ?
+ include_once __DIR__ . "/../src/Autoloader.php";
+ PhpXmlRpc\Autoloader::register();
+}
+
+// work around register globals - @see https://www.php.net/manual/en/faq.misc.php#faq.misc.registerglobals
+if (ini_get('register_globals')) {
+ function unregister_globals()
+ {
+ // Might want to change this perhaps to a nicer error
+ if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
+ die('GLOBALS overwrite attempt detected');
+ }
+
+ // Variables that shouldn't be unset
+ $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES');
+
+ $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES,
+ isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array()
+ );
+
+ foreach ($input as $k => $v) {
+ if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
+ unset($GLOBALS[$k]);
+ }
+ }
+ }
+ unregister_globals();
+}
+