public function attach(EventManagerInterface $events) { $this->listeners[] = $events->attach(Event::FETCH_JOBS, function (Event $event) { $job = new Job(); $job->setId('foo'); $job->setName('Foo Job'); $jobManager = $event->getTarget(); $job->setEventManager($jobManager->getEventManager()); $job->setServiceManager($jobManager->getServiceManager()); return array('foo' => $job); }); }
public function fetchJobs(Event $event) { $jobManager = $event->getTarget(); $serviceManager = $jobManager->getServiceManager(); $eventManager = $jobManager->getEventManager(); $this->initialize($event); $table = $this->getJobTable(); $jobs = array(); foreach ($table->select() as $row) { $job = new Job(); $job->setId($row[$this->columnMap['id']]); $job->setName($row[$this->columnMap['name']], false); $job->setEventManager($eventManager); $job->setServiceManager($serviceManager); $tasks = $row[$this->columnMap['tasks']]; $tasks = empty($tasks) ? array() : unserialize($tasks); foreach ($tasks as $task) { $task->setEventManager($eventManager); $task->setServiceManager($serviceManager); } $job->setTasks($tasks, false); $report = $row[$this->columnMap['report']]; $report = empty($report) ? new Report() : unserialize($report); $job->setReport($report, false); $schedule = $row[$this->columnMap['schedule']]; $schedule = empty($schedule) ? new Schedule() : unserialize($schedule); $job->setSchedule($schedule, false); $jobs[] = $job; } return $jobs; }