/** * Parses a section array. * * @param array $sections * @param Configuration|null $configuration * * @return Configuration */ public function parseSections(array $sections, Configuration $configuration = null) { if (is_null($configuration)) { $configuration = new Configuration(); } foreach ($sections as $sectionName => $section) { $name = explode(':', $sectionName, 2); $class = $configuration->findSection($name[0]); if (false === $class) { $class = 'Supervisor\\Configuration\\Section\\GenericSection'; $name[1] = $sectionName; } if (isset($name[1])) { $section = new $class($name[1], $section); } else { $section = new $class($section); } $configuration->addSection($section); } return $configuration; }