Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
CRAP | |
9.68% |
3 / 31 |
Message | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
158.43 | |
9.68% |
3 / 31 |
setMetadata($spec, $value = null) | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 12 |
|||
getMetadata($key = null, $default = null) | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 7 |
|||
setContent($value) | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
getContent() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
toString() | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
<?php | |
/** | |
* Zend Framework (http://framework.zend.com/) | |
* | |
* @link http://github.com/zendframework/zf2 for the canonical source repository | |
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) | |
* @license http://framework.zend.com/license/new-bsd New BSD License | |
*/ | |
namespace Zend\Stdlib; | |
use Traversable; | |
class Message implements MessageInterface | |
{ | |
/** | |
* @var array | |
*/ | |
protected $metadata = array(); | |
/** | |
* @var string | |
*/ | |
protected $content = ''; | |
/** | |
* Set message metadata | |
* | |
* Non-destructive setting of message metadata; always adds to the metadata, never overwrites | |
* the entire metadata container. | |
* | |
* @param string|int|array|Traversable $spec | |
* @param mixed $value | |
* @throws Exception\InvalidArgumentException | |
* @return Message | |
*/ | |
public function setMetadata($spec, $value = null) | |
{ | |
if (is_scalar($spec)) { | |
$this->metadata[$spec] = $value; | |
return $this; | |
} | |
if (!is_array($spec) && !$spec instanceof Traversable) { | |
throw new Exception\InvalidArgumentException(sprintf( | |
'Expected a string, array, or Traversable argument in first position; received "%s"', | |
(is_object($spec) ? get_class($spec) : gettype($spec)) | |
)); | |
} | |
foreach ($spec as $key => $value) { | |
$this->metadata[$key] = $value; | |
} | |
return $this; | |
} | |
/** | |
* Retrieve all metadata or a single metadatum as specified by key | |
* | |
* @param null|string|int $key | |
* @param null|mixed $default | |
* @throws Exception\InvalidArgumentException | |
* @return mixed | |
*/ | |
public function getMetadata($key = null, $default = null) | |
{ | |
if (null === $key) { | |
return $this->metadata; | |
} | |
if (!is_scalar($key)) { | |
throw new Exception\InvalidArgumentException('Non-scalar argument provided for key'); | |
} | |
if (array_key_exists($key, $this->metadata)) { | |
return $this->metadata[$key]; | |
} | |
return $default; | |
} | |
/** | |
* Set message content | |
* | |
* @param mixed $value | |
* @return Message | |
*/ | |
public function setContent($value) | |
{ | |
$this->content = $value; | |
return $this; | |
} | |
/** | |
* Get message content | |
* | |
* @return mixed | |
*/ | |
public function getContent() | |
{ | |
return $this->content; | |
} | |
/** | |
* @return string | |
*/ | |
public function toString() | |
{ | |
$request = ''; | |
foreach ($this->getMetadata() as $key => $value) { | |
$request .= sprintf( | |
"%s: %s\r\n", | |
(string) $key, | |
(string) $value | |
); | |
} | |
$request .= "\r\n" . $this->getContent(); | |
return $request; | |
} | |
} |