|
24 | 24 | trait HttpClientTrait
|
25 | 25 | {
|
26 | 26 | private static $CHUNK_SIZE = 16372;
|
| 27 | + private static $emptyDefaults; |
27 | 28 |
|
28 | 29 | /**
|
29 | 30 | * {@inheritdoc}
|
@@ -52,6 +53,16 @@ private static function prepareRequest(?string $method, ?string $url, array $opt
|
52 | 53 | }
|
53 | 54 | }
|
54 | 55 |
|
| 56 | + if (null === self::$emptyDefaults) { |
| 57 | + self::$emptyDefaults = []; |
| 58 | + |
| 59 | + foreach ($defaultOptions as $k => $v) { |
| 60 | + if (null !== $v) { |
| 61 | + self::$emptyDefaults[$k] = $v; |
| 62 | + } |
| 63 | + } |
| 64 | + } |
| 65 | + |
55 | 66 | $options = self::mergeDefaultOptions($options, $defaultOptions, $allowExtraOptions);
|
56 | 67 |
|
57 | 68 | $buffer = $options['buffer'] ?? true;
|
@@ -201,6 +212,16 @@ private static function mergeDefaultOptions(array $options, array $defaultOption
|
201 | 212 |
|
202 | 213 | $options += $defaultOptions;
|
203 | 214 |
|
| 215 | + if (null === self::$emptyDefaults) { |
| 216 | + self::$emptyDefaults = []; |
| 217 | + } |
| 218 | + |
| 219 | + foreach (self::$emptyDefaults as $k => $v) { |
| 220 | + if (!isset($options[$k])) { |
| 221 | + $options[$k] = $v; |
| 222 | + } |
| 223 | + } |
| 224 | + |
204 | 225 | if (isset($defaultOptions['extra'])) {
|
205 | 226 | $options['extra'] += $defaultOptions['extra'];
|
206 | 227 | }
|
@@ -233,9 +254,9 @@ private static function mergeDefaultOptions(array $options, array $defaultOption
|
233 | 254 |
|
234 | 255 | $alternatives = [];
|
235 | 256 |
|
236 |
| - foreach ($defaultOptions as $key => $v) { |
237 |
| - if (levenshtein($name, $key) <= \strlen($name) / 3 || str_contains($key, $name)) { |
238 |
| - $alternatives[] = $key; |
| 257 | + foreach ($defaultOptions as $k => $v) { |
| 258 | + if (levenshtein($name, $k) <= \strlen($name) / 3 || str_contains($k, $name)) { |
| 259 | + $alternatives[] = $k; |
239 | 260 | }
|
240 | 261 | }
|
241 | 262 |
|
|
0 commit comments