* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class Message implements MessageInterface { /** @var array */ protected $headers; /** @var \Psr\Http\Message\StreamInterface */ protected $body; /** @var string */ protected $protocol; /** * @param array $headers * @param \Psr\Http\Message\StreamInterface|string|resource $body */ public function __construct(array $headers = array(), $body = null) { $this->headers = $this->prepareHeaders($headers); $this->body = $this->prepareBody($body); } public function getProtocolVersion() { return $this->protocol; } public function setProtocolVersion($protocol) { $this->protocol = $protocol; } public function getHeaders() { return $this->headers; } public function setHeaders(array $headers) { $this->headers = $this->prepareHeaders($headers); } public function hasHeader($name) { return array_key_exists(strtolower($name), $this->headers); } public function getHeader($name) { $lines = $this->getHeaderLines($name); return $lines ? implode(', ', $lines) : null; } public function getHeaderLines($name) { $name = strtolower($name); if (!$this->hasHeader($name)) { return array(); } return $this->headers[$name]; } public function setHeader($name, $value) { $this->headers[strtolower($name)] = $this->normalizeHeaderValue($value); } public function addHeader($name, $value) { $name = strtolower($name); if ($this->hasHeader($name)) { $this->setHeader($name, array_merge($this->headers[$name], $this->normalizeHeaderValue($value))); } else { $this->setHeader($name, $value); } } public function removeHeader($name) { $name = strtolower($name); if ($this->hasHeader($name)) { unset($this->headers[$name]); } } public function getBody() { return $this->body; } public function setBody(PsrStreamInterface $body) { $this->body = $body; } protected function prepareHeaders(array $headers) { return array_map(array($this, 'normalizeHeaderValue'), array_change_key_case($headers)); } protected function normalizeHeaderValue($value) { return is_array($value) ? array_map('strval', $value) : [(string) $value]; } protected function prepareBody($body) { if ($body instanceof PsrStreamInterface) { return $body; } elseif ($body === null) { return new Stream\StringStream(); } elseif (is_string($body)) { return new Stream\StringStream($body); } elseif (is_resource($body)) { return new Stream\TempStream($body); } else { throw new InvalidArgumentException('Body must be either a PSX\Http\StreamInterface, string or resource'); } } } __halt_compiler();----SIGNATURE:----BEqN0Cu/eO5+YAv3rC6HI4Q9i+Er84pXAsXYaUZ7W2oD64YSeBecFL6i0mz5MrWGO+Y4ipWYCu+P5N/vywUaJLN0r48J01aINR8BgFSwnsWO2EjePfVmB9lAusb16XRHDhoN3gYHcGKcemsEYUXBGDYc8/WdVlHl90YDjcfqSC9UvUF17GWfbXQkLJ0EyMRLA6lTveKNNS2ROAOkCfKi+6oxta27rafJRcwY/ZeJ78LR33kxpSEfbT7IvDtKp611EHCTN+vIEPAOSI5llkvdxpRZLP3dgGus/93u/vOLWSFqfKBNeRh8VjfMbnGHxWxB0LkM89wefQKhR5JePmHqI/0SBLREhsXjhzjIbLUqm3y37/K9FYwCdMJKeQ1ESDDu1bD1pYy1UwiXd/Jk1JpV3tk00tABLJ8YWFk+ryplPpn3hJ/U2Y8eW557u024Ttk/Ggi1igPIyUL2uUgwOeNLwVMR6VpTWw4fT2cVG3PLPPng3eJdgm3qdEkl/isJfU7YoJRN+tQ6y7Ak+dDnAmW8T/PwP7Jrnf49ANcZJKCQbVPBPg3jErj9hxniEjJXi1cJ4Q3eN19VAJPaKjFwBISWONuufNXUGbcXLmG9oyvjtHHbHfAuyyFkU4Un3MjEMrQwynZllResbXkFQK+e+I2Feh7263+ZRDtmB5SxXFtaPcA=----ATTACHMENT:----OTAyMjY5NTI5NTI2MzY2MyAyNjc1MTM5OTg5Njg2NjcgNTQ3MTgxOTYyNDA0ODU0