public function execute() { $updateTime = date('Y-m-d H:i:s', $this->lastRun); $select = $this->dbService->select(); $select->from('project')->joinInner('task', 'task.projectid = project.id', new Zend_Db_Expr('task.id as taskid'))->where("task.updated > ?", $updateTime); $projects = $this->dbService->fetchObjects('Project', $select); $done = array(); foreach ($projects as $project) { if (in_array($project->id, $done)) { continue; } $done[] = $project->id; echo "Updating time for project #{$project->id} " . $project->title . "\n"; $this->projectService->updateProjectEstimate($project); } $select = $this->dbService->select(); $select->from('project')->joinInner('feature', 'feature.projectid = project.id', new Zend_Db_Expr('feature.id as featureid'))->where("feature.updated > ?", $updateTime); $projects = $this->dbService->fetchObjects('Project', $select); foreach ($projects as $project) { if (in_array($project->id, $done)) { continue; } $done[] = $project->id; echo "Updating time for project #{$project->id} " . $project->title . "\n"; $this->projectService->updateProjectEstimate($project); } }