$xmlDoc = new DOMDocument(); $xmlDoc->loadXML($configXML); $dataManager = new DataManager(); #################################### set input foreach (array('ReadSVN', 'ReadGitHub', 'ReadGit') as $mod) { $configList = $xmlDoc->getElementsByTagName($mod); $configListLength = $configList->length; if ($configListLength > 0) { require dirname(__FILE__) . DIRECTORY_SEPARATOR . $mod . '.php'; for ($pos = 0; $pos < $configListLength; $pos++) { $dataManager->addReader(new $mod($configList->item($pos))); } } } #################################### process input $dataManager->process(); #print_r($dataManager->getData()); #print(count($dataManager->getData())); if (!$dataManager->hasData()) { die("No data found!\n"); } #################################### output foreach (array('WriteHourOfDayData', 'WriteDayOfWeekData', 'WriteICalData', 'WriteDayOfWeekAndHourOfDayData', 'WriteDB', 'WriteRangeByMonth') as $mod) { $configList = $xmlDoc->getElementsByTagName($mod); $configListLength = $configList->length; if ($configListLength > 0) { require dirname(__FILE__) . DIRECTORY_SEPARATOR . $mod . '.php'; for ($pos = 0; $pos < $configListLength; $pos++) { $dataManager->writeData(new $mod($configList->item($pos))); } }