/** * Build and return an array of Task. * * @param array $taskConfigurations * @return Task[] */ public function build(array $taskConfigurations) { $resolver = new OptionsResolver(); $tasks = []; foreach ($taskConfigurations as $taskName => $taskConfiguration) { $resolver->clear(); // debug mode if ($this->debug === true) { $taskConfiguration['debug'] = $this->debug; } // add copy filter in last position if required if (!$this->hasCopyFilter($taskConfiguration)) { $taskConfiguration['filters'][] = 'copy'; } $configuration = new TaskConfiguration(); $configuration->configureOptions($resolver); $configuration->setParameters($resolver->resolve($taskConfiguration)); $task = new Task($taskName, $configuration); $tasks[$taskName] = $task; } return $tasks; }
/** * @param $name * @param $configuration * @return Task */ protected function getTask($name, $configuration) { $resolver = new OptionsResolver(); $taskConfiguration = new TaskConfiguration(); $taskConfiguration->configureOptions($resolver); $taskConfiguration->setParameters($resolver->resolve($configuration)); $task = new Task($name, $taskConfiguration); return $task; }