minor #37215 [FrameworkBundle] Move web configuration to PHP (ck-developer, Tobion)

This PR was merged into the 5.2-dev branch.

Discussion
----------

[FrameworkBundle] Move web configuration to PHP

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Ref #37186
| License       | MIT

Commits
-------

9000e72a23 add missing abstract_arg to fix replace arguments
8a81abeb6f [FrameworkBundle] Move web configuration to PHP
This commit is contained in:
Tobias Schultze 2020-06-12 01:09:36 +02:00
commit b667eed120
5 changed files with 132 additions and 102 deletions

View File

@ -173,7 +173,7 @@ class FrameworkExtension extends Extension
$phpLoader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config'));
$loader->load('web.xml');
$phpLoader->load('web.php');
$loader->load('services.xml');
$phpLoader->load('fragment_renderer.php');
$phpLoader->load('error_renderer.php');
@ -398,7 +398,7 @@ class FrameworkExtension extends Extension
throw new LogicException('WebLink support cannot be enabled as the WebLink component is not installed. Try running "composer require symfony/weblink".');
}
$loader->load('web_link.xml');
$phpLoader->load('web_link.php');
}
$this->addAnnotatedClassesToCompile([

View File

@ -0,0 +1,109 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver;
use Symfony\Component\HttpKernel\Controller\ErrorController;
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
use Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener;
use Symfony\Component\HttpKernel\EventListener\ErrorListener;
use Symfony\Component\HttpKernel\EventListener\LocaleListener;
use Symfony\Component\HttpKernel\EventListener\ResponseListener;
use Symfony\Component\HttpKernel\EventListener\StreamedResponseListener;
use Symfony\Component\HttpKernel\EventListener\ValidateRequestListener;
return static function (ContainerConfigurator $container) {
$container->services()
->set('controller_resolver', ControllerResolver::class)
->args([
service('service_container'),
service('logger')->ignoreOnInvalid(),
])
->tag('monolog.logger', ['channel' => 'request'])
->set('argument_metadata_factory', ArgumentMetadataFactory::class)
->set('argument_resolver', ArgumentResolver::class)
->args([
service('argument_metadata_factory'),
abstract_arg('argument value resolvers'),
])
->set('argument_resolver.request_attribute', RequestAttributeValueResolver::class)
->tag('controller.argument_value_resolver', ['priority' => 100])
->set('argument_resolver.request', RequestValueResolver::class)
->tag('controller.argument_value_resolver', ['priority' => 50])
->set('argument_resolver.session', SessionValueResolver::class)
->tag('controller.argument_value_resolver', ['priority' => 50])
->set('argument_resolver.service', ServiceValueResolver::class)
->args([
abstract_arg('service locator, set in RegisterControllerArgumentLocatorsPass'),
])
->tag('controller.argument_value_resolver', ['priority' => -50])
->set('argument_resolver.default', DefaultValueResolver::class)
->tag('controller.argument_value_resolver', ['priority' => -100])
->set('argument_resolver.variadic', VariadicValueResolver::class)
->tag('controller.argument_value_resolver', ['priority' => -150])
->set('response_listener', ResponseListener::class)
->args([
param('kernel.charset'),
])
->tag('kernel.event_subscriber')
->set('streamed_response_listener', StreamedResponseListener::class)
->tag('kernel.event_subscriber')
->set('locale_listener', LocaleListener::class)
->args([
service('request_stack'),
param('kernel.default_locale'),
service('router')->ignoreOnInvalid(),
])
->tag('kernel.event_subscriber')
->set('validate_request_listener', ValidateRequestListener::class)
->tag('kernel.event_subscriber')
->set('disallow_search_engine_index_response_listener', DisallowRobotsIndexingListener::class)
->tag('kernel.event_subscriber')
->set('error_controller', ErrorController::class)
->public()
->args([
service('http_kernel'),
param('kernel.error_controller'),
service('error_renderer'),
])
->set('exception_listener', ErrorListener::class)
->args([
param('kernel.error_controller'),
service('logger')->nullOnInvalid(),
param('kernel.debug'),
])
->tag('kernel.event_subscriber')
->tag('monolog.logger', ['channel' => 'request'])
;
};

View File

@ -1,86 +0,0 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<defaults public="false" />
<service id="controller_resolver" class="Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver">
<tag name="monolog.logger" channel="request" />
<argument type="service" id="service_container" />
<argument type="service" id="logger" on-invalid="ignore" />
</service>
<service id="argument_metadata_factory" class="Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory" />
<service id="argument_resolver" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver">
<argument type="service" id="argument_metadata_factory" />
<argument /> <!-- argument value resolvers -->
</service>
<service id="argument_resolver.request_attribute" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver">
<tag name="controller.argument_value_resolver" priority="100" />
</service>
<service id="argument_resolver.request" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver">
<tag name="controller.argument_value_resolver" priority="50" />
</service>
<service id="argument_resolver.session" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver">
<tag name="controller.argument_value_resolver" priority="50" />
</service>
<service id="argument_resolver.service" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver">
<tag name="controller.argument_value_resolver" priority="-50" />
<argument />
</service>
<service id="argument_resolver.default" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver">
<tag name="controller.argument_value_resolver" priority="-100" />
</service>
<service id="argument_resolver.variadic" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver">
<tag name="controller.argument_value_resolver" priority="-150" />
</service>
<service id="response_listener" class="Symfony\Component\HttpKernel\EventListener\ResponseListener">
<tag name="kernel.event_subscriber" />
<argument>%kernel.charset%</argument>
</service>
<service id="streamed_response_listener" class="Symfony\Component\HttpKernel\EventListener\StreamedResponseListener">
<tag name="kernel.event_subscriber" />
</service>
<service id="locale_listener" class="Symfony\Component\HttpKernel\EventListener\LocaleListener">
<tag name="kernel.event_subscriber" />
<argument type="service" id="request_stack" />
<argument>%kernel.default_locale%</argument>
<argument type="service" id="router" on-invalid="ignore" />
</service>
<service id="validate_request_listener" class="Symfony\Component\HttpKernel\EventListener\ValidateRequestListener">
<tag name="kernel.event_subscriber" />
</service>
<service id="disallow_search_engine_index_response_listener" class="Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener">
<tag name="kernel.event_subscriber" />
</service>
<service id="error_controller" class="Symfony\Component\HttpKernel\Controller\ErrorController" public="true">
<argument type="service" id="http_kernel" />
<argument>%kernel.error_controller%</argument>
<argument type="service" id="error_renderer" />
</service>
<service id="exception_listener" class="Symfony\Component\HttpKernel\EventListener\ErrorListener">
<tag name="kernel.event_subscriber" />
<tag name="monolog.logger" channel="request" />
<argument>%kernel.error_controller%</argument>
<argument type="service" id="logger" on-invalid="null" />
<argument>%kernel.debug%</argument>
</service>
</services>
</container>

View File

@ -0,0 +1,21 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Component\WebLink\EventListener\AddLinkHeaderListener;
return static function (ContainerConfigurator $container) {
$container->services()
->set('web_link.add_link_header_listener', AddLinkHeaderListener::class)
->tag('kernel.event_subscriber')
;
};

View File

@ -1,14 +0,0 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<defaults public="false" />
<service id="web_link.add_link_header_listener" class="Symfony\Component\WebLink\EventListener\AddLinkHeaderListener">
<tag name="kernel.event_subscriber" />
</service>
</services>
</container>