@@ -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