Blame | Last modification | View Log | RSS feed
<?phpnamespace 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;}}