public function editAction() { $manager = $this->getJobManager(); $id = $this->params('job'); if (null === $id) { $job = new Job\Job(); $job->setEventManager($manager->getEventManager()); $job->setServiceManager($this->serviceLocator); } else { $job = $manager->getJob($id); } if ($this->request->isPost()) { $job->setName($this->request->getPost('name')); $tasks = array(); foreach ($this->request->getPost('tasks', array()) as $code) { $code = trim($code); if (!empty($code)) { $tasks[] = new Job\Task($code); } } $job->setTasks($tasks); $job->save(); return $this->redirect()->toRoute('spork-tools/job'); } return array('job' => $job); }
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; }