I'm trying to parse all specific .yml files from Folders subfolders. Like lets say I have Modules folder with test & example subfolder. Both test and example have .yml file I want to parse.
Currently I have:
$yaml = new Parser();
$yml_array = $yaml->parse(file_get_contents(__DIR__.'/path/to/file.yml'));
This works but would be pain in the ass hardcode everytime when new subfolder with .yml file is added.
Can someone help me out and teach me how to do it smarter or give tip? Thanks for your time
Thanks Matteo for helpful answer, it didn't really fit into my needs, but helped.
I found following solution:
$yaml = new Parser();
$finder = new Finder();
$parsedData = array();
$tmp = $finder->files()->in(__DIR__.'/../path/to/folder')->name('test.yml');
foreach ($tmp as $t)
{
$x = $yaml->parse(file_get_contents($t));
array_push($parsedData, $x);
}
You can use the DirectoryLoader: a recursive loader to go through directories. As example:
// Load recursively all YAML configuration files in services directories
$fileLocator = new FileLocator(__DIR__);
$loader = new DirectoryLoader($container, $fileLocator);
$loader->setResolver(new LoaderResolver(array(
new YamlFileLoader($container, $fileLocator),
$loader,
)));
$loader->load('/services/');
More info in this article.
Hope this help