Файл: vkolhoze.com/vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php
Строк: 131
<?php
namespace GuzzleHttpMessage;
use GuzzleCommonVersion;
use GuzzleCommonCollection;
use GuzzleHttpMessageHeaderHeaderCollection;
use GuzzleHttpMessageHeaderHeaderFactory;
use GuzzleHttpMessageHeaderHeaderFactoryInterface;
use GuzzleHttpMessageHeaderHeaderInterface;
/**
 * Abstract HTTP request/response message
 */
abstract class AbstractMessage implements MessageInterface
{
    /** @var array HTTP header collection */
    protected $headers;
    /** @var HeaderFactoryInterface $headerFactory */
    protected $headerFactory;
    /** @var Collection Custom message parameters that are extendable by plugins */
    protected $params;
    /** @var string Message protocol */
    protected $protocol = 'HTTP';
    /** @var string HTTP protocol version of the message */
    protected $protocolVersion = '1.1';
    public function __construct()
    {
        $this->params = new Collection();
        $this->headerFactory = new HeaderFactory();
        $this->headers = new HeaderCollection();
    }
    /**
     * Set the header factory to use to create headers
     *
     * @param HeaderFactoryInterface $factory
     *
     * @return self
     */
    public function setHeaderFactory(HeaderFactoryInterface $factory)
    {
        $this->headerFactory = $factory;
        return $this;
    }
    public function getParams()
    {
        return $this->params;
    }
    public function addHeader($header, $value)
    {
        if (isset($this->headers[$header])) {
            $this->headers[$header]->add($value);
        } elseif ($value instanceof HeaderInterface) {
            $this->headers[$header] = $value;
        } else {
            $this->headers[$header] = $this->headerFactory->createHeader($header, $value);
        }
        return $this;
    }
    public function addHeaders(array $headers)
    {
        foreach ($headers as $key => $value) {
            $this->addHeader($key, $value);
        }
        return $this;
    }
    public function getHeader($header)
    {
        return $this->headers[$header];
    }
    public function getHeaders()
    {
        return $this->headers;
    }
    public function getHeaderLines()
    {
        $headers = array();
        foreach ($this->headers as $value) {
            $headers[] = $value->getName() . ': ' . $value;
        }
        return $headers;
    }
    public function setHeader($header, $value)
    {
        unset($this->headers[$header]);
        $this->addHeader($header, $value);
        return $this;
    }
    public function setHeaders(array $headers)
    {
        $this->headers->clear();
        foreach ($headers as $key => $value) {
            $this->addHeader($key, $value);
        }
        return $this;
    }
    public function hasHeader($header)
    {
        return isset($this->headers[$header]);
    }
    public function removeHeader($header)
    {
        unset($this->headers[$header]);
        return $this;
    }
    /**
     * @deprecated Use $message->getHeader()->parseParams()
     * @codeCoverageIgnore
     */
    public function getTokenizedHeader($header, $token = ';')
    {
        Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader()->parseParams()');
        if ($this->hasHeader($header)) {
            $data = new Collection();
            foreach ($this->getHeader($header)->parseParams() as $values) {
                foreach ($values as $key => $value) {
                    if ($value === '') {
                        $data->set($data->count(), $key);
                    } else {
                        $data->add($key, $value);
                    }
                }
            }
            return $data;
        }
    }
    /**
     * @deprecated
     * @codeCoverageIgnore
     */
    public function setTokenizedHeader($header, $data, $token = ';')
    {
        Version::warn(__METHOD__ . ' is deprecated.');
        return $this;
    }
    /**
     * @deprecated
     * @codeCoverageIgnore
     */
    public function getCacheControlDirective($directive)
    {
        Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader('Cache-Control')->getDirective()');
        if (!($header = $this->getHeader('Cache-Control'))) {
            return null;
        }
        return $header->getDirective($directive);
    }
    /**
     * @deprecated
     * @codeCoverageIgnore
     */
    public function hasCacheControlDirective($directive)
    {
        Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader('Cache-Control')->hasDirective()');
        if ($header = $this->getHeader('Cache-Control')) {
            return $header->hasDirective($directive);
        } else {
            return false;
        }
    }
    /**
     * @deprecated
     * @codeCoverageIgnore
     */
    public function addCacheControlDirective($directive, $value = true)
    {
        Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader('Cache-Control')->addDirective()');
        if (!($header = $this->getHeader('Cache-Control'))) {
            $this->addHeader('Cache-Control', '');
            $header = $this->getHeader('Cache-Control');
        }
        $header->addDirective($directive, $value);
        return $this;
    }
    /**
     * @deprecated
     * @codeCoverageIgnore
     */
    public function removeCacheControlDirective($directive)
    {
        Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader('Cache-Control')->removeDirective()');
        if ($header = $this->getHeader('Cache-Control')) {
            $header->removeDirective($directive);
        }
        return $this;
    }
}