GuzzleHttp\Client::prepareDefaults PHP Method

prepareDefaults() private method

Merges default options into the array.
private prepareDefaults ( array $options ) : array
$options array Options to modify by reference
return array
    private function prepareDefaults($options)
    {
        $defaults = $this->config;
        if (!empty($defaults['headers'])) {
            // Default headers are only added if they are not present.
            $defaults['_conditional'] = $defaults['headers'];
            unset($defaults['headers']);
        }
        // Special handling for headers is required as they are added as
        // conditional headers and as headers passed to a request ctor.
        if (array_key_exists('headers', $options)) {
            // Allows default headers to be unset.
            if ($options['headers'] === null) {
                $defaults['_conditional'] = null;
                unset($options['headers']);
            } elseif (!is_array($options['headers'])) {
                throw new \InvalidArgumentException('headers must be an array');
            }
        }
        // Shallow merge defaults underneath options.
        $result = $options + $defaults;
        // Remove null values.
        foreach ($result as $k => $v) {
            if ($v === null) {
                unset($result[$k]);
            }
        }
        return $result;
    }