예제 #1
0
 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);
 }
예제 #2
0
 public function testRun()
 {
     $job = new Job();
     $job->setEventManager(new EventManager());
     $this->setVariables(array('job' => $job, 'messages' => array()));
     $this->render('spork-tools/job/run');
 }
예제 #3
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);
     });
 }
예제 #4
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;
 }