private function registerRegistries(Container $container)
{
foreach (['generator' => 'reports', 'renderer' => 'outputs'] as $registryType => $optionName) {
$container->register('report.registry.' . $registryType, function (Container $container) use($registryType, $optionName) {
$registry = new ConfigurableRegistry($registryType, $container, $container->get('json.decoder'));
foreach ($container->getServiceIdsForTag('report_' . $registryType) as $serviceId => $attributes) {
$registry->registerService($attributes['name'], $serviceId);
}
$configs = array_merge(require __DIR__ . '/config/report/' . $registryType . 's.php', $container->getParameter($optionName));
foreach ($configs as $name => $config) {
$registry->setConfig($name, $config);
}
return $registry;
});
}
$container->register('benchmark.registry.executor', function (Container $container) {
$registry = new ConfigurableRegistry('executor', $container, $container->get('json.decoder'));
foreach ($container->getServiceIdsForTag('benchmark_executor') as $serviceId => $attributes) {
$registry->registerService($attributes['name'], $serviceId);
}
$executorConfigs = array_merge(require __DIR__ . '/config/benchmark/executors.php', $container->getParameter('executors'));
foreach ($executorConfigs as $name => $config) {
$registry->setConfig($name, $config);
}
return $registry;
});
}