/** * @param TaskInterface $service * @param TaskDefinition $task * * @return TaskInterface */ private function prepareServiceForTask(TaskInterface $service, TaskDefinition $task) { $this->dispatcher->dispatch(Event::PRE_INITIALIZE_TASK, new Event\PreInitializeTaskEvent($service)); if ($service instanceof AbstractTask) { $service->configure(); } if (method_exists($service, 'setEventDispatcher')) { $service->setEventDispatcher($this->dispatcher); } if (method_exists($service, 'setHelperSet')) { $service->setHelperSet($this->helperSet); } foreach ($task->getParameters() as $name => $value) { $service->setParameter($name, $value); } if (method_exists($service, 'validate')) { $service->validate(); } return $service; }