Skip to content

Commit 013ad35

Browse files
committed
Revert to older Symfony OptionsResolver
1 parent 275860c commit 013ad35

2 files changed

Lines changed: 49 additions & 55 deletions

File tree

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"require": {
3434
"php": "^7.3 || ^8.0",
3535
"ext-json": "*",
36-
"symfony/options-resolver": "^4.4 || ^5 || ^6 || ^7 || ^8",
36+
"symfony/options-resolver": "^4.4 || ^5 || ^6 || ^7",
3737
"psr/cache": "^1 || ^2 || ^3",
3838
"psr/simple-cache": "^1 || ^2 || ^3",
3939
"psr/event-dispatcher": "^1",
@@ -51,8 +51,8 @@
5151
"php-http/mock-client": "^1.2",
5252
"slevomat/coding-standard": "^8.27.1",
5353
"squizlabs/php_codesniffer": "^4.0.1",
54-
"symfony/cache": "^4.4 || ^5 || ^6 || ^7 || ^8",
55-
"symfony/event-dispatcher": "^4.4 || ^5 || ^6 || ^7 || ^8",
54+
"symfony/cache": "^4.4 || ^5 || ^6 || ^7",
55+
"symfony/event-dispatcher": "^4.4 || ^5 || ^6 || ^7",
5656
"phpstan/phpstan": "^2.1.38",
5757
"phpstan/phpstan-deprecation-rules": "^2.0.3",
5858
"spaze/phpstan-disallowed-calls": "^4.7.0",

lib/Tmdb/Client.php

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -95,61 +95,55 @@ protected function configureOptions(array $options)
9595
'base_uri' => null,
9696
'api_token' => null,
9797
'guest_session_token' => null,
98-
'http' => [],
99-
'hydration' => [],
100-
'event_dispatcher' => [],
98+
'http' => function (OptionsResolver $optionsResolver) {
99+
$optionsResolver->setDefaults(
100+
[
101+
'client' => null,
102+
'request_factory' => null,
103+
'response_factory' => null,
104+
'stream_factory' => null,
105+
'uri_factory' => null,
106+
]
107+
);
108+
$optionsResolver->setRequired(
109+
[
110+
'client',
111+
'request_factory',
112+
'response_factory',
113+
'stream_factory',
114+
'uri_factory'
115+
]
116+
);
117+
$optionsResolver->setAllowedTypes('client', [ClientInterface::class, 'null']);
118+
$optionsResolver->setAllowedTypes('request_factory', [RequestFactoryInterface::class, 'null']);
119+
$optionsResolver->setAllowedTypes('response_factory', [ResponseFactoryInterface::class, 'null']);
120+
$optionsResolver->setAllowedTypes('stream_factory', [StreamFactoryInterface::class, 'null']);
121+
$optionsResolver->setAllowedTypes('uri_factory', [UriFactoryInterface::class, 'null']);
122+
},
123+
'hydration' => function (OptionsResolver $optionsResolver) {
124+
$optionsResolver->setDefaults(
125+
[
126+
'event_listener_handles_hydration' => false,
127+
'only_for_specified_models' => []
128+
]
129+
);
130+
$optionsResolver->setAllowedTypes('event_listener_handles_hydration', ['bool']);
131+
// @todo 4.1 validate these are actually models
132+
$optionsResolver->setAllowedTypes('only_for_specified_models', ['array']);
133+
},
134+
'event_dispatcher' => function (OptionsResolver $optionsResolver) {
135+
$optionsResolver->setDefaults(
136+
[
137+
'adapter' => null
138+
]
139+
);
140+
141+
$optionsResolver->setRequired(['adapter']);
142+
$optionsResolver->setAllowedTypes('adapter', [EventDispatcherInterface::class]);
143+
}
101144
]
102145
);
103146

104-
$resolver->setOptions('http', function (OptionsResolver $optionsResolver) {
105-
$optionsResolver->setDefaults(
106-
[
107-
'client' => null,
108-
'request_factory' => null,
109-
'response_factory' => null,
110-
'stream_factory' => null,
111-
'uri_factory' => null,
112-
]
113-
);
114-
$optionsResolver->setRequired(
115-
[
116-
'client',
117-
'request_factory',
118-
'response_factory',
119-
'stream_factory',
120-
'uri_factory'
121-
]
122-
);
123-
$optionsResolver->setAllowedTypes('client', [ClientInterface::class, 'null']);
124-
$optionsResolver->setAllowedTypes('request_factory', [RequestFactoryInterface::class, 'null']);
125-
$optionsResolver->setAllowedTypes('response_factory', [ResponseFactoryInterface::class, 'null']);
126-
$optionsResolver->setAllowedTypes('stream_factory', [StreamFactoryInterface::class, 'null']);
127-
$optionsResolver->setAllowedTypes('uri_factory', [UriFactoryInterface::class, 'null']);
128-
});
129-
130-
$resolver->setOptions('hydration', function (OptionsResolver $optionsResolver) {
131-
$optionsResolver->setDefaults(
132-
[
133-
'event_listener_handles_hydration' => false,
134-
'only_for_specified_models' => []
135-
]
136-
);
137-
$optionsResolver->setAllowedTypes('event_listener_handles_hydration', ['bool']);
138-
// @todo 4.1 validate these are actually models
139-
$optionsResolver->setAllowedTypes('only_for_specified_models', ['array']);
140-
});
141-
142-
$resolver->setOptions('event_dispatcher', function (OptionsResolver $optionsResolver) {
143-
$optionsResolver->setDefaults(
144-
[
145-
'adapter' => null
146-
]
147-
);
148-
149-
$optionsResolver->setRequired(['adapter']);
150-
$optionsResolver->setAllowedTypes('adapter', [EventDispatcherInterface::class]);
151-
});
152-
153147
$resolver->setRequired(
154148
[
155149
'host',

0 commit comments

Comments
 (0)