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);
    }
}
Exemple #2
0
//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) {