| Viewing file:  AbstractMessage.php (5.53 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?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;
 }
 }
 
 |