Пример #1
0
 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}'");
 }
Пример #2
0
 public function getSource()
 {
     $source = $this->getValueOrFail('source', 'no source specified');
     $resolvedSource = $this->manager->get('source', $source);
     if (!$this->hasOverrides('source')) {
         return $resolvedSource;
     }
     return Source::make('override', $this->data['overrides']['source'], $this->manager, $resolvedSource);
 }
Пример #3
0
 public static function create($data)
 {
     $manager = new self();
     $manager->setDefaultDirectories(new Directories('default', $data['directories'], $manager));
     foreach ($data['servers'] as $name => $server) {
         $manager->set(new Server($name, $server, $manager));
     }
     foreach ($data['sources'] as $name => $source) {
         $manager->set(Source::make($name, $source, $manager));
     }
     foreach ($data['environments'] as $name => $environment) {
         $manager->set(new Environment($name, $environment, $manager));
     }
     foreach ($data['tasks'] as $name => $tasks) {
         $manager->set(new Tasks($name, $tasks, $manager));
     }
     return $manager;
 }