Skip to content

Commit be88438

Browse files
committed
Add configuration for metadata options
1 parent ba93574 commit be88438

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/DependencyInjection/DirigentConfiguration.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ public function getConfigTreeBuilder(): TreeBuilder
8282
->booleanNode('preferred')->defaultTrue()->end()
8383
->booleanNode('dev_packages')->defaultFalse()->end()
8484
->end()
85+
->end()
86+
->arrayNode('metadata')
87+
->addDefaultsIfNotSet()
88+
->children()
89+
->booleanNode('mirror_vcs_repositories')->defaultFalse()->info('Fetch mirrored packages from their VCS repositories by default when possible.')->end()
90+
->booleanNode('resolve_public_packages')->defaultTrue()->info('Scan packagist.org for the public equivalent of packages.')->end()
91+
->end()
8592
->end();
8693

8794
return $treeBuilder;

src/DependencyInjection/DirigentExtension.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ class DirigentExtension extends ConfigurableExtension
1212
protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void
1313
{
1414
if (null === $slug = $mergedConfig['slug']) {
15-
$slug = (new AsciiSlugger())->slug($mergedConfig['title']);
16-
$slug = strtolower($slug);
15+
$slug = (new AsciiSlugger())->slug($mergedConfig['title'])->lower();
1716
}
1817

1918
$container->setParameter('dirigent.title', $mergedConfig['title']);
2019
$container->setParameter('dirigent.slug', $slug);
2120

2221
$this->registerEncryptionConfiguration($mergedConfig['encryption'], $container);
22+
$this->registerMetadataConfiguration($mergedConfig['metadata'], $container);
2323

2424
$container->setParameter('dirigent.security.public_access', $mergedConfig['security']['public']);
2525
$container->setParameter('dirigent.security.registration_enabled', $mergedConfig['security']['registration']);
@@ -58,4 +58,13 @@ private function registerEncryptionConfiguration(array $config, ContainerBuilder
5858
$container->setParameter('dirigent.encryption.public_key_path', $config['public_key_path']);
5959
$container->setParameter('dirigent.encryption.rotated_key_paths', $config['rotated_key_paths']);
6060
}
61+
62+
/**
63+
* @param array{mirror_vcs_repositories: bool, resolve_public_packages: bool} $config
64+
*/
65+
private function registerMetadataConfiguration(array $config, ContainerBuilder $container): void
66+
{
67+
$container->setParameter('dirigent.metadata.mirror_vcs_repositories', $config['mirror_vcs_repositories']);
68+
$container->setParameter('dirigent.metadata.resolve_public_packages', $config['resolve_public_packages']);
69+
}
6170
}

0 commit comments

Comments
 (0)