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; }