WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

YoastSEO_Vendor\GuzzleHttp

Client::applyOptions() private Yoast 1.0

Applies the array of request options to a request.

{} Это метод класса: Client{}

Хуков нет.

Возвращает

RequestInterface.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->applyOptions( \YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, $options );
$request(Requestчислоerface) (обязательный)
$options(массив) (обязательный)

Код Client::applyOptions() Yoast 15.6.2

<?php
private function applyOptions(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, array &$options)
{
    $modify = ['set_headers' => []];
    if (isset($options['headers'])) {
        $modify['set_headers'] = $options['headers'];
        unset($options['headers']);
    }
    if (isset($options['form_params'])) {
        if (isset($options['multipart'])) {
            throw new \InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.');
        }
        $options['body'] = \http_build_query($options['form_params'], '', '&');
        unset($options['form_params']);
        // Ensure that we don't have the header in different case and set the new value.
        $options['_conditional'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
        $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
    }
    if (isset($options['multipart'])) {
        $options['body'] = new \YoastSEO_Vendor\GuzzleHttp\Psr7\MultipartStream($options['multipart']);
        unset($options['multipart']);
    }
    if (isset($options['json'])) {
        $options['body'] = \YoastSEO_Vendor\GuzzleHttp\json_encode($options['json']);
        unset($options['json']);
        // Ensure that we don't have the header in different case and set the new value.
        $options['_conditional'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
        $options['_conditional']['Content-Type'] = 'application/json';
    }
    if (!empty($options['decode_content']) && $options['decode_content'] !== \true) {
        // Ensure that we don't have the header in different case and set the new value.
        $options['_conditional'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\_caseless_remove(['Accept-Encoding'], $options['_conditional']);
        $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
    }
    if (isset($options['body'])) {
        if (\is_array($options['body'])) {
            $this->invalidBody();
        }
        $modify['body'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\stream_for($options['body']);
        unset($options['body']);
    }
    if (!empty($options['auth']) && \is_array($options['auth'])) {
        $value = $options['auth'];
        $type = isset($value[2]) ? \strtolower($value[2]) : 'basic';
        switch ($type) {
            case 'basic':
                // Ensure that we don't have the header in different case and set the new value.
                $modify['set_headers'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\_caseless_remove(['Authorization'], $modify['set_headers']);
                $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}");
                break;
            case 'digest':
                // @todo: Do not rely on curl
                $options['curl'][\CURLOPT_HTTPAUTH] = \CURLAUTH_DIGEST;
                $options['curl'][\CURLOPT_USERPWD] = "{$value[0]}:{$value[1]}";
                break;
            case 'ntlm':
                $options['curl'][\CURLOPT_HTTPAUTH] = \CURLAUTH_NTLM;
                $options['curl'][\CURLOPT_USERPWD] = "{$value[0]}:{$value[1]}";
                break;
        }
    }
    if (isset($options['query'])) {
        $value = $options['query'];
        if (\is_array($value)) {
            $value = \http_build_query($value, null, '&', \PHP_QUERY_RFC3986);
        }
        if (!\is_string($value)) {
            throw new \InvalidArgumentException('query must be a string or array');
        }
        $modify['query'] = $value;
        unset($options['query']);
    }
    // Ensure that sink is not an invalid value.
    if (isset($options['sink'])) {
        // TODO: Add more sink validation?
        if (\is_bool($options['sink'])) {
            throw new \InvalidArgumentException('sink must not be a boolean');
        }
    }
    $request = \YoastSEO_Vendor\GuzzleHttp\Psr7\modify_request($request, $modify);
    if ($request->getBody() instanceof \YoastSEO_Vendor\GuzzleHttp\Psr7\MultipartStream) {
        // Use a multipart/form-data POST if a Content-Type is not set.
        // Ensure that we don't have the header in different case and set the new value.
        $options['_conditional'] = \YoastSEO_Vendor\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
        $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary();
    }
    // Merge in conditional headers if they are not present.
    if (isset($options['_conditional'])) {
        // Build up the changes so it's in a single clone of the message.
        $modify = [];
        foreach ($options['_conditional'] as $k => $v) {
            if (!$request->hasHeader($k)) {
                $modify['set_headers'][$k] = $v;
            }
        }
        $request = \YoastSEO_Vendor\GuzzleHttp\Psr7\modify_request($request, $modify);
        // Don't pass this internal value along to middleware/handlers.
        unset($options['_conditional']);
    }
    return $request;
}