protected static function findStrategy($name, $data, ConfigurationManager $manager, Source $parent = null) { if (isset($data['strategy'])) { return $data['strategy']; } if ($parent) { return $parent->getStrategy(); } if (isset($data['extends']) && $manager->has('source', $data['extends'])) { return $manager->get('source', $data['extends'])->getStrategy(); } throw new \LogicException("Cannot find a valid strategy for the source '{$name}'"); }