public function create($statsType) { // prepare things unique to this statsType $ucStatsType = ucfirst($statsType); if (!isset($this->updateIfOlderThan[$ucStatsType])) { throw new Exception("unknown type of article stats type given: '{$statsType}'"); exit; } $viewName = $this->viewNameBase . strtolower($statsType); $articleStatsClassName = $ucStatsType . "_ArticleStats"; // get search results for statsTypes that need them $searchResults = $this->runSearch($ucStatsType); // setup the objects we need $db = new Db('https://' . AM_CRAWLER_USER . ':' . AM_CRAWLER_PW . '@' . AM_CRAWLER_DB_URL, AM_CRAWLER_DB_NAME); $urls = new Urls(); $getter = new UrlGetter(); $articleStats = new $articleStatsClassName($getter, $urls); $updater = new Updater($db, $this->log); // setup update options $updater->setViewName(array("crawl", $viewName)); $updater->setArticleStats($articleStats); $updater->setSecondsBetweenUpdates($this->secondsBetweenDocUpdates[$ucStatsType]); $updater->setUpdateIfOlderThan($this->updateIfOlderThan[$ucStatsType]); $updater->setSearchResults($searchResults); return $updater; }