Skip to content

Commit 07af90e

Browse files
committed
Merge pull request #942 from FriendsOfSymfony/tyx-feature/exception-handler-to-service
Tyx feature/exception handler to service
2 parents 71f2ed7 + fd6ca90 commit 07af90e

File tree

7 files changed

+30
-23
lines changed

7 files changed

+30
-23
lines changed

Controller/ExceptionController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class ExceptionController extends ContainerAware
4141
protected function createExceptionWrapper(array $parameters)
4242
{
4343
/** @var ExceptionWrapperHandlerInterface $exceptionWrapperHandler */
44-
$exceptionWrapperHandler = $this->container->get('fos_rest.view.exception_wrapper_handler');
44+
$exceptionWrapperHandler = $this->container->get('fos_rest.exception_handler');
4545

4646
return $exceptionWrapperHandler->wrap($parameters);
4747
}

DependencyInjection/Configuration.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public function getConfigTreeBuilder()
7676
->scalarNode('templating')->defaultValue('templating')->end()
7777
->scalarNode('serializer')->defaultNull()->end()
7878
->scalarNode('view_handler')->defaultValue('fos_rest.view_handler.default')->end()
79+
->scalarNode('exception_handler')->defaultValue('fos_rest.view.exception_wrapper_handler')->end()
7980
->scalarNode('inflector')->defaultValue('fos_rest.inflector.doctrine')->end()
8081
->scalarNode('validator')->defaultValue('validator')->end()
8182
->end()
@@ -144,7 +145,7 @@ private function addViewSection(ArrayNodeDefinition $rootNode)
144145
->end()
145146
->scalarNode('failed_validation')->defaultValue(Codes::HTTP_BAD_REQUEST)->end()
146147
->scalarNode('empty_content')->defaultValue(Codes::HTTP_NO_CONTENT)->end()
147-
->scalarNode('exception_wrapper_handler')->defaultValue('FOS\RestBundle\View\ExceptionWrapperHandler')->end()
148+
->scalarNode('exception_wrapper_handler')->defaultNull()->end()
148149
->booleanNode('serialize_null')->defaultFalse()->end()
149150
->arrayNode('jsonp_handler')
150151
->canBeUnset()

Resources/config/view.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<parameter key="fos_rest.serializer.exclusion_strategy.version" />
99
<parameter key="fos_rest.serializer.exclusion_strategy.groups"/>
1010
<parameter key="fos_rest.view_handler.jsonp.callback_param"/>
11-
<parameter key="fos_rest.view.exception_wrapper_handler" />
11+
<parameter key="fos_rest.view.exception_wrapper_handler">FOS\RestBundle\View\ExceptionWrapperHandler</parameter>
1212
<parameter key="fos_rest.view_handler.default.class">FOS\RestBundle\View\ViewHandler</parameter>
1313
<parameter key="fos_rest.view_handler.jsonp.class">FOS\RestBundle\View\JsonpHandler</parameter>
1414
<parameter key="fos_rest.serializer.exception_wrapper_serialize_handler.class">FOS\RestBundle\Serializer\ExceptionWrapperSerializeHandler</parameter>
@@ -41,7 +41,7 @@
4141
<argument>%fos_rest.view_handler.jsonp.callback_param%</argument>
4242
</service>
4343

44-
<service id="fos_rest.view.exception_wrapper_handler" class="%fos_rest.view.exception_wrapper_handler%" />
44+
<service id="fos_rest.view.exception_wrapper_handler" class="%fos_rest.view.exception_wrapper_handler%"/>
4545

4646
<service id="fos_rest.serializer.exception_wrapper_serialize_handler" class="%fos_rest.serializer.exception_wrapper_serialize_handler.class%">
4747
<tag name="jms_serializer.subscribing_handler" />

Resources/doc/configuration-reference.rst

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Full default configuration
2525
templating: templating
2626
serializer: null
2727
view_handler: fos_rest.view_handler.default
28+
exception_handler: fos_rest.view.exception_wrapper_handler
2829
inflector: fos_rest.inflector.doctrine
2930
validator: validator
3031
serializer:
@@ -52,13 +53,15 @@ Full default configuration
5253
view_response_listener: false
5354
failed_validation: 400
5455
empty_content: 204
55-
exception_wrapper_handler: FOS\RestBundle\View\ExceptionWrapperHandler
56+
exception_wrapper_handler: null
5657
serialize_null: false
5758
jsonp_handler:
5859
callback_param: callback
5960
callback_filter: '/(^[a-z0-9_]+$)|(^YUI\.Env\.JSONP\._[0-9]+$)/i'
6061
mime_type: application/javascript+jsonp
6162
exception:
63+
enabled: false
64+
exception_controller: null
6265
codes:
6366
6467
# Prototype
@@ -68,29 +71,31 @@ Full default configuration
6871
# Prototype
6972
name: ~
7073
body_listener:
71-
default_format: null
74+
default_format: null
7275
throw_exception_on_unsupported_content_type: false
7376
decoders:
7477
7578
# Prototype
7679
name: ~
77-
array_normalizer: null
80+
array_normalizer:
81+
service: null
82+
forms: false
7883
format_listener:
7984
rules:
8085
81-
# Prototype array
82-
-
83-
# URL path info
84-
path: null
86+
# URL path info
87+
path: null
8588
86-
# URL host name
87-
host: null
89+
# URL host name
90+
host: null
8891
89-
# Method for URL
90-
methods: null
91-
prefer_extension: true
92-
fallback_format: html
93-
exception_fallback_format: ~
94-
priorities: []
92+
# Method for URL
93+
methods: null
94+
stop: false
95+
prefer_extension: true
96+
fallback_format: html
97+
exception_fallback_format: null
98+
priorities: []
9599
media_type:
96100
version_regex: '/(v|version)=(?P<version>[0-9\.]+)/'
101+

Tests/DependencyInjection/FOSRestExtensionTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ public function testLoadServicesWithDefaults()
172172
$this->extension->load(array(), $this->container);
173173

174174
$this->assertAlias('fos_rest.view_handler.default', 'fos_rest.view_handler');
175+
$this->assertAlias('fos_rest.view.exception_wrapper_handler', 'fos_rest.exception_handler');
175176
}
176177

177178
public function testLoadFormatsWithDefaults()

Tests/View/ViewHandlerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public function testShouldReturnErrorResponseWhenDataContainsFormAndFormIsNotVal
209209
;
210210

211211
$container->set('fos_rest.serializer', $serializer);
212-
$container->set('fos_rest.view.exception_wrapper_handler', new ExceptionWrapperHandler());
212+
$container->set('fos_rest.exception_handler', new ExceptionWrapperHandler());
213213

214214
//test
215215
$viewHandler = new ViewHandler(null, $expectedFailedValidationCode = Codes::HTTP_I_AM_A_TEAPOT);
@@ -309,15 +309,15 @@ private function setupMockedSerializer($container, $expected)
309309
->method('get')
310310
->with($this->logicalOr(
311311
$this->equalTo('fos_rest.serializer'),
312-
$this->equalTo('fos_rest.view.exception_wrapper_handler')
312+
$this->equalTo('fos_rest.exception_handler')
313313
))
314314
->will(
315315
$this->returnCallback(
316316
function ($method) use ($serializer) {
317317
switch ($method) {
318318
case 'fos_rest.serializer':
319319
return $serializer;
320-
case 'fos_rest.view.exception_wrapper_handler':
320+
case 'fos_rest.exception_handler':
321321
return new ExceptionWrapperHandler();
322322
}
323323
}

View/ViewHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ private function getDataFromView(View $view)
500500
}
501501

502502
/** @var ExceptionWrapperHandlerInterface $exceptionWrapperHandler */
503-
$exceptionWrapperHandler = $this->container->get('fos_rest.view.exception_wrapper_handler');
503+
$exceptionWrapperHandler = $this->container->get('fos_rest.exception_handler');
504504

505505
return $exceptionWrapperHandler->wrap(
506506
array(

0 commit comments

Comments
 (0)