summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php220
1 files changed, 220 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php
new file mode 100644
index 0000000..0d066ff
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/AbstractMessage.php
@@ -0,0 +1,220 @@
+<?php
+
+namespace Guzzle\Http\Message;
+
+use Guzzle\Common\Version;
+use Guzzle\Common\Collection;
+use Guzzle\Http\Message\Header\HeaderCollection;
+use Guzzle\Http\Message\Header\HeaderFactory;
+use Guzzle\Http\Message\Header\HeaderFactoryInterface;
+use Guzzle\Http\Message\Header\HeaderInterface;
+
+/**
+ * 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;
+ }
+}