[FrameworkBundle] Configure RequestContext through router config
This commit is contained in:
parent
e0c1f4da32
commit
6658900703
@ -482,6 +482,15 @@ class Configuration implements ConfigurationInterface
|
|||||||
->defaultTrue()
|
->defaultTrue()
|
||||||
->end()
|
->end()
|
||||||
->booleanNode('utf8')->defaultFalse()->end()
|
->booleanNode('utf8')->defaultFalse()->end()
|
||||||
|
->arrayNode('context')
|
||||||
|
->info('router request context')
|
||||||
|
->addDefaultsIfNotSet()
|
||||||
|
->children()
|
||||||
|
->scalarNode('host')->defaultValue('%router.request_context.host%')->end()
|
||||||
|
->scalarNode('scheme')->defaultValue('%router.request_context.scheme%')->end()
|
||||||
|
->scalarNode('base_url')->defaultValue('%router.request_context.base_url%')->end()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
->end()
|
->end()
|
||||||
->end()
|
->end()
|
||||||
->end()
|
->end()
|
||||||
|
@ -854,6 +854,11 @@ class FrameworkExtension extends Extension
|
|||||||
$container->setParameter('request_listener.http_port', $config['http_port']);
|
$container->setParameter('request_listener.http_port', $config['http_port']);
|
||||||
$container->setParameter('request_listener.https_port', $config['https_port']);
|
$container->setParameter('request_listener.https_port', $config['https_port']);
|
||||||
|
|
||||||
|
$requestContext = $container->findDefinition('router.request_context');
|
||||||
|
$requestContext->replaceArgument(0, $config['context']['base_url']);
|
||||||
|
$requestContext->replaceArgument(2, $config['context']['host']);
|
||||||
|
$requestContext->replaceArgument(3, $config['context']['scheme']);
|
||||||
|
|
||||||
if ($this->annotationsConfigEnabled) {
|
if ($this->annotationsConfigEnabled) {
|
||||||
$container->register('routing.loader.annotation', AnnotatedRouteControllerLoader::class)
|
$container->register('routing.loader.annotation', AnnotatedRouteControllerLoader::class)
|
||||||
->setPublic(false)
|
->setPublic(false)
|
||||||
|
@ -79,10 +79,10 @@
|
|||||||
<service id="Symfony\Component\Routing\RequestContextAwareInterface" alias="router" />
|
<service id="Symfony\Component\Routing\RequestContextAwareInterface" alias="router" />
|
||||||
|
|
||||||
<service id="router.request_context" class="Symfony\Component\Routing\RequestContext">
|
<service id="router.request_context" class="Symfony\Component\Routing\RequestContext">
|
||||||
<argument>%router.request_context.base_url%</argument>
|
<argument></argument> <!-- base_url -->
|
||||||
<argument>GET</argument>
|
<argument>GET</argument>
|
||||||
<argument>%router.request_context.host%</argument>
|
<argument></argument> <!-- host -->
|
||||||
<argument>%router.request_context.scheme%</argument>
|
<argument></argument> <!-- scheme -->
|
||||||
<argument>%request_listener.http_port%</argument>
|
<argument>%request_listener.http_port%</argument>
|
||||||
<argument>%request_listener.https_port%</argument>
|
<argument>%request_listener.https_port%</argument>
|
||||||
</service>
|
</service>
|
||||||
|
@ -413,6 +413,11 @@ class ConfigurationTest extends TestCase
|
|||||||
'https_port' => 443,
|
'https_port' => 443,
|
||||||
'strict_requirements' => true,
|
'strict_requirements' => true,
|
||||||
'utf8' => false,
|
'utf8' => false,
|
||||||
|
'context' => [
|
||||||
|
'host' => '%router.request_context.host%',
|
||||||
|
'scheme' => '%router.request_context.scheme%',
|
||||||
|
'base_url' => '%router.request_context.base_url%',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
'session' => [
|
'session' => [
|
||||||
'enabled' => false,
|
'enabled' => false,
|
||||||
|
Reference in New Issue
Block a user