/** * Generate a schema for the given configuration or YAML file. * * ./flow3 configuration:generateschema --type Settings --path TYPO3.FLOW3.persistence * * The schema will be output to standard output. * * @param string $type Configuration type to create a schema for * @param string $path path to the subconfiguration separated by "." like "TYPO3.FLOW3" * @param string $yaml YAML file to create a schema for * @return void */ public function generateSchemaCommand($type = NULL, $path = NULL, $yaml = NULL) { $data = NULL; if ($yaml !== NULL && is_file($yaml) && is_readable($yaml)) { $data = \Symfony\Component\Yaml\Yaml::parse($yaml); } elseif ($type !== NULL) { $data = $this->configurationManager->getConfiguration($type); if ($path !== NULL) { $data = \TYPO3\FLOW3\Utility\Arrays::getValueByPath($data, $path); } } if (empty($data)) { $this->outputLine('Data was not found or is empty'); return; } $yaml = \Symfony\Component\Yaml\Yaml::dump($this->schemaGenerator->generate($data), 99); $this->output($yaml . chr(10)); }
/** * @dataProvider schemaGenerationForArrayOfTypesDataProvider * @test */ public function testSchemaGenerationForArrayOfTypes($value, $expectedSchema) { $schema = $this->configurationGenerator->generate($value); $this->assertEquals($schema, $expectedSchema); }