diff --git a/src/Method/DdevMethod.php b/src/Method/DdevMethod.php new file mode 100644 index 00000000..e471c2f7 --- /dev/null +++ b/src/Method/DdevMethod.php @@ -0,0 +1,53 @@ +getName(); + } + + public function getGlobalSettings(ConfigurationService $configuration): Node + { + $node = new Node([], $this->getName() . ' global settings'); + $config_file = $configuration->getFabfilePath() . '/.ddev/config.yaml'; + if (file_exists($config_file)) { + $data = Node::parseYamlFile($config_file); + $node->set('ddev', $data); + } + + return $node; + } + + public function validateGlobalSettings(Node $settings, ValidationErrorBagInterface $errors) + { + if ($settings->has('ddev')) { + $ddev = $settings['ddev']; + $service = new ValidationService($ddev, $errors, 'ddev settings'); + $service->hasKey('name', 'the ddev project-name is missing'); + } else { + $errors->addError('ddev', 'No ddev config found, check `.ddev/config.yaml`'); + } + } + + public function getMethodDependencies(MethodFactory $factory, \ArrayAccess $data): array + { + return [ + DockerMethod::METHOD_NAME + ]; + } +}