Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions DependencyInjection/FOSRestExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Exception\LogicException;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\HttpFoundation\ChainRequestMatcher;
Expand Down Expand Up @@ -51,10 +51,10 @@ public function getConfiguration(array $config, ContainerBuilder $container): Co

protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('view.xml');
$loader->load('request.xml');
$loader->load('serializer.xml');
$loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('view.php');
$loader->load('request.php');
$loader->load('serializer.php');

foreach ($mergedConfig['service'] as $key => $service) {
if ('validator' === $service && empty($mergedConfig['body_converter']['validate'])) {
Expand Down Expand Up @@ -86,35 +86,35 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
$this->loadSerializer($mergedConfig, $container);
}

private function loadForm(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadForm(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if (!empty($config['disable_csrf_role'])) {
$loader->load('forms.xml');
$loader->load('forms.php');

$definition = $container->getDefinition('fos_rest.form.extension.csrf_disable');
$definition->replaceArgument(1, $config['disable_csrf_role']);
$definition->addTag('form.type_extension', ['extended_type' => FormType::class]);
}
}

private function loadAllowedMethodsListener(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadAllowedMethodsListener(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['allowed_methods_listener'])) {
if (!empty($config['allowed_methods_listener']['service'])) {
$service = $container->getDefinition('fos_rest.allowed_methods_listener');
$service->clearTag('kernel.event_listener');
}

$loader->load('allowed_methods_listener.xml');
$loader->load('allowed_methods_listener.php');

$container->getDefinition('fos_rest.allowed_methods_loader')->replaceArgument(1, $config['cache_dir']);
}
}

private function loadBodyListener(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadBodyListener(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['body_listener'])) {
$loader->load('body_listener.xml');
$loader->load('body_listener.php');

$service = $container->getDefinition('fos_rest.body_listener');

Expand Down Expand Up @@ -146,10 +146,10 @@ private function loadBodyListener(array $config, XmlFileLoader $loader, Containe
}
}

private function loadFormatListener(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadFormatListener(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['format_listener']) && !empty($config['format_listener']['rules'])) {
$loader->load('format_listener.xml');
$loader->load('format_listener.php');

if (!empty($config['format_listener']['service'])) {
$service = $container->getDefinition('fos_rest.format_listener');
Expand All @@ -163,10 +163,10 @@ private function loadFormatListener(array $config, XmlFileLoader $loader, Contai
}
}

private function loadVersioning(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadVersioning(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['versioning'])) {
$loader->load('versioning.xml');
$loader->load('versioning.php');

$versionListener = $container->getDefinition('fos_rest.versioning.listener');
$versionListener->replaceArgument(1, $config['versioning']['default_version']);
Expand Down Expand Up @@ -194,14 +194,14 @@ private function loadVersioning(array $config, XmlFileLoader $loader, ContainerB
}
}

private function loadParamFetcherListener(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadParamFetcherListener(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['param_fetcher_listener'])) {
if (!class_exists(Constraint::class)) {
throw new \LogicException('Enabling the fos_rest.param_fetcher_listener option when the Symfony Validator component is not installed is not supported. Try installing the symfony/validator package.');
}

$loader->load('param_fetcher_listener.xml');
$loader->load('param_fetcher_listener.php');

if (!empty($config['param_fetcher_listener']['service'])) {
$service = $container->getDefinition('fos_rest.param_fetcher_listener');
Expand All @@ -214,7 +214,7 @@ private function loadParamFetcherListener(array $config, XmlFileLoader $loader,
}
}

private function loadBodyConverter(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadBodyConverter(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if (!$this->isConfigEnabled($container, $config['body_converter'])) {
return;
Expand All @@ -224,14 +224,14 @@ private function loadBodyConverter(array $config, XmlFileLoader $loader, Contain
throw new LogicException('To use the request body param converter, the "sensio/framework-extra-bundle" package is required.');
}

$loader->load('request_body_param_converter.xml');
$loader->load('request_body_param_converter.php');

if (!empty($config['body_converter']['validation_errors_argument'])) {
$container->getDefinition('fos_rest.converter.request_body')->replaceArgument(4, $config['body_converter']['validation_errors_argument']);
}
}

private function loadView(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadView(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if (!empty($config['view']['jsonp_handler'])) {
$handler = new ChildDefinition($config['service']['view_handler']);
Expand All @@ -249,7 +249,7 @@ private function loadView(array $config, XmlFileLoader $loader, ContainerBuilder
}

if ($this->isConfigEnabled($container, $config['view']['mime_types'])) {
$loader->load('mime_type_listener.xml');
$loader->load('mime_type_listener.php');

if (!empty($config['mime_type_listener']['service'])) {
$service = $container->getDefinition('fos_rest.mime_type_listener');
Expand All @@ -260,7 +260,7 @@ private function loadView(array $config, XmlFileLoader $loader, ContainerBuilder
}

if ($this->isConfigEnabled($container, $config['view']['view_response_listener'])) {
$loader->load('view_response_listener.xml');
$loader->load('view_response_listener.php');
$service = $container->getDefinition('fos_rest.view_response_listener');

if (!empty($config['view_response_listener']['service'])) {
Expand Down Expand Up @@ -298,10 +298,10 @@ private function loadView(array $config, XmlFileLoader $loader, ContainerBuilder
]);
}

private function loadException(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadException(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if ($this->isConfigEnabled($container, $config['exception'])) {
$loader->load('exception.xml');
$loader->load('exception.php');

if ($config['exception']['map_exception_codes']) {
$container->register('fos_rest.exception.response_status_code_listener', ResponseStatusCodeListener::class)
Expand Down Expand Up @@ -373,10 +373,10 @@ private function loadSerializer(array $config, ContainerBuilder $container): voi
$viewHandler->addArgument($options);
}

private function loadZoneMatcherListener(array $config, XmlFileLoader $loader, ContainerBuilder $container): void
private function loadZoneMatcherListener(array $config, PhpFileLoader $loader, ContainerBuilder $container): void
{
if (!empty($config['zone'])) {
$loader->load('zone_matcher_listener.xml');
$loader->load('zone_matcher_listener.php');
$zoneMatcherListener = $container->getDefinition('fos_rest.zone_matcher_listener');

foreach ($config['zone'] as $zone) {
Expand Down
21 changes: 21 additions & 0 deletions Resources/config/allowed_methods_listener.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();
$parameters = $container->parameters();

$services->set('fos_rest.allowed_methods_listener', \FOS\RestBundle\EventListener\AllowedMethodsListener::class)
->args([service('fos_rest.allowed_methods_loader')])
->tag('kernel.event_listener', ['event' => 'kernel.response', 'method' => 'onKernelResponse']);

$services->set('fos_rest.allowed_methods_loader', \FOS\RestBundle\Response\AllowedMethodsLoader\AllowedMethodsRouterLoader::class)
->private()
->args([
service('router'),
'',
'%kernel.debug%',
])
->tag('kernel.cache_warmer');
};
22 changes: 0 additions & 22 deletions Resources/config/allowed_methods_listener.xml

This file was deleted.

31 changes: 31 additions & 0 deletions Resources/config/body_listener.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();
$parameters = $container->parameters();

$services->set('fos_rest.normalizer.camel_keys', \FOS\RestBundle\Normalizer\CamelKeysNormalizer::class);

$services->set('fos_rest.normalizer.camel_keys_with_leading_underscore', \FOS\RestBundle\Normalizer\CamelKeysNormalizerWithLeadingUnderscore::class);

$services->set('fos_rest.decoder.json', \FOS\RestBundle\Decoder\JsonDecoder::class);

$services->set('fos_rest.decoder.jsontoform', \FOS\RestBundle\Decoder\JsonToFormDecoder::class);

$services->set('fos_rest.decoder.xml', \FOS\RestBundle\Decoder\XmlDecoder::class);

$services->set('fos_rest.decoder_provider', \FOS\RestBundle\Decoder\ContainerDecoderProvider::class)
->args([
service('service_container'),
[],
]);

$services->set('fos_rest.body_listener', \FOS\RestBundle\EventListener\BodyListener::class)
->args([
service('fos_rest.decoder_provider'),
'', // exception on unsupported content type
])
->tag('kernel.event_listener', ['event' => 'kernel.request', 'method' => 'onKernelRequest', 'priority' => 10]);
};
31 changes: 0 additions & 31 deletions Resources/config/body_listener.xml

This file was deleted.

40 changes: 40 additions & 0 deletions Resources/config/exception.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();
$parameters = $container->parameters();

$services->set('fos_rest.exception.codes_map', \FOS\RestBundle\Util\ExceptionValueMap::class)
->private()
->args([
[], // exception codes
]);

$services->set('fos_rest.exception.messages_map', \FOS\RestBundle\Util\ExceptionValueMap::class)
->private()
->args([
[], // exception messages
]);

$services->set('fos_rest.serializer.flatten_exception_handler', \FOS\RestBundle\Serializer\Normalizer\FlattenExceptionHandler::class)
->private()
->args([
service('fos_rest.exception.codes_map'),
service('fos_rest.exception.messages_map'),
'', // show exception message
'', // render according to RFC 7807
])
->tag('jms_serializer.subscribing_handler');

$services->set('fos_rest.serializer.flatten_exception_normalizer', \FOS\RestBundle\Serializer\Normalizer\FlattenExceptionNormalizer::class)
->private()
->args([
service('fos_rest.exception.codes_map'), // exception messages
service('fos_rest.exception.messages_map'), // exception messages
'', // show exception message
'', // render according to RFC 7807
])
->tag('serializer.normalizer', ['priority' => -10]);
};
32 changes: 0 additions & 32 deletions Resources/config/exception.xml

This file was deleted.

15 changes: 15 additions & 0 deletions Resources/config/format_listener.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();
$parameters = $container->parameters();

$services->set('fos_rest.format_listener', \FOS\RestBundle\EventListener\FormatListener::class)
->args([service('fos_rest.format_negotiator')])
->tag('kernel.event_listener', ['event' => 'kernel.request', 'method' => 'onKernelRequest', 'priority' => 34]);

$services->set('fos_rest.format_negotiator', \FOS\RestBundle\Negotiation\FormatNegotiator::class)
->args([service('request_stack')]);
};
17 changes: 0 additions & 17 deletions Resources/config/format_listener.xml

This file was deleted.

Loading