예제 #1
0
 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);
     });
 }
예제 #2
0
 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;
 }