/** @return Job[] */ public function compile($includedJobs = null) { $jobs = []; if ($includedJobs !== null) { $includedJobs = array_flip($includedJobs); } foreach ($this->configuration->getNode('jobs') as $jobId => $jobConfiguration) { if ($includedJobs !== null && !array_key_exists($jobId, $includedJobs)) { continue; } $job = new Job(); $job->configuration->extend($this->processConfigurationTemplates($this->configuration->getNode('default', null, true))); $job->configuration->extend($this->processConfigurationTemplates($this->configuration->getNode('sprites', null, true)), 'sprites'); $job->configuration->extend($this->processConfigurationTemplates(Tools::deepCloneObject($jobConfiguration))); if (!$job->configuration->getBool('enabled', true)) { continue; } $this->loadHelpers($job); $this->loadSprites($job); $this->generateSpritesheets($job); $this->renderSpritesheets($job); $jobs[] = $job; } return $jobs; }