Skip to content

Commit 4155d1d

Browse files
[FrameworkBundle] Make uri_signer lazy and improve error when kernel.secret is empty
1 parent a8d0da4 commit 4155d1d

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,10 +310,17 @@ public function load(array $configs, ContainerBuilder $container): void
310310
}
311311
}
312312

313+
$emptySecretHint = '"framework.secret" option';
313314
if (isset($config['secret'])) {
314315
$container->setParameter('kernel.secret', $config['secret']);
316+
$usedEnvs = [];
317+
$container->resolveEnvPlaceholders($config['secret'], null, $usedEnvs);
318+
319+
if ($usedEnvs) {
320+
$emptySecretHint = \sprintf('"%s" env var%s', implode('", "', $usedEnvs), 1 === \count($usedEnvs) ? '' : 's');
321+
}
315322
}
316-
$container->parameterCannotBeEmpty('kernel.secret', 'A non-empty value for the parameter "kernel.secret" is required. Did you forget to configure the "framework.secret" option?');
323+
$container->parameterCannotBeEmpty('kernel.secret', 'A non-empty value for the parameter "kernel.secret" is required. Did you forget to configure the '.$emptySecretHint.'?');
317324

318325
$container->setParameter('kernel.http_method_override', $config['http_method_override']);
319326
$container->setParameter('kernel.trust_x_sendfile_type_header', $config['trust_x_sendfile_type_header']);

Resources/config/services.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ class_exists(WorkflowEvents::class) ? WorkflowEvents::ALIASES : []
157157
->args([
158158
new Parameter('kernel.secret'),
159159
])
160+
->lazy()
160161
->alias(UriSigner::class, 'uri_signer')
161162

162163
->set('config_cache_factory', ResourceCheckerConfigCacheFactory::class)

0 commit comments

Comments
 (0)