function mergeConfig($id, $inst) { global $__config, $combined; static $curInstPath = array(); // copy instance over print "Processing '{$id}' at " . join(' > ', $curInstPath) . "\n"; $addToHere =& $combined; foreach ($curInstPath as $pid) { $addToHere =& $addToHere[$pid]['children']; } // copy over class and config $addToHere[$id]['class'] = $inst['class']; if (isset($__config[$id]['properties'])) { $addToHere[$id]['properties'] = $__config[$id]['properties']; } if (isset($__config[$id]['bindings'])) { $addToHere[$id]['bindings'] = $__config[$id]['bindings']; } // recurse into children if (isset($inst['children'])) { array_push($curInstPath, $id); foreach ($inst['children'] as $childID => $childInst) { mergeConfig($childID, $childInst); } array_pop($curInstPath); } }
//Parsers requireParser("Generic"); requireParser("TagMatcher"); requireParser("Dummy"); requireParser("MySQLError"); //Functions requireFunction("launcher"); checkPHPVersion(); $logger = new Logger(); $logger->setEcho(TRUE); banner($logger); try { unset($_SERVER["argv"][0]); $sites = array(); $links = array(); $parameters = mergeConfig($_SERVER["argv"], "config/config.ini"); $cmdParser = new CmdLineParser($config, $parameters); $parsedOptions = $cmdParser->getParsedOptions(); if (isset($parsedOptions["log-save"])) { $logger->setFilename($parsedOptions["log-save"]); } $logger->setColors($parsedOptions["colors"]); if (!empty($parsedOptions["url"])) { $sites[0] = $parsedOptions["url"]; } //Instance of the http adapter, shared by aggregation through all classes $httpAdapter = new $parsedOptions["http-adapter"](); if (isset($parsedOptions["connect-timeout"])) { $httpAdapter->setConnectTimeout($parsedOptions["connect-timeout"]); } if (isset($parsedOptions["request-interval"]) && $parsedOptions["request-interval"] > 0) {