[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/zendframework/zend-stdlib/src/ -> Message.php (source)

   1  <?php
   2  /**
   3   * Zend Framework (http://framework.zend.com/)
   4   *
   5   * @link      http://github.com/zendframework/zf2 for the canonical source repository
   6   * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
   7   * @license   http://framework.zend.com/license/new-bsd New BSD License
   8   */
   9  
  10  namespace Zend\Stdlib;
  11  
  12  use Traversable;
  13  
  14  class Message implements MessageInterface
  15  {
  16      /**
  17       * @var array
  18       */
  19      protected $metadata = array();
  20  
  21      /**
  22       * @var string
  23       */
  24      protected $content = '';
  25  
  26      /**
  27       * Set message metadata
  28       *
  29       * Non-destructive setting of message metadata; always adds to the metadata, never overwrites
  30       * the entire metadata container.
  31       *
  32       * @param  string|int|array|Traversable $spec
  33       * @param  mixed $value
  34       * @throws Exception\InvalidArgumentException
  35       * @return Message
  36       */
  37      public function setMetadata($spec, $value = null)
  38      {
  39          if (is_scalar($spec)) {
  40              $this->metadata[$spec] = $value;
  41              return $this;
  42          }
  43          if (!is_array($spec) && !$spec instanceof Traversable) {
  44              throw new Exception\InvalidArgumentException(sprintf(
  45                  'Expected a string, array, or Traversable argument in first position; received "%s"',
  46                  (is_object($spec) ? get_class($spec) : gettype($spec))
  47              ));
  48          }
  49          foreach ($spec as $key => $value) {
  50              $this->metadata[$key] = $value;
  51          }
  52          return $this;
  53      }
  54  
  55      /**
  56       * Retrieve all metadata or a single metadatum as specified by key
  57       *
  58       * @param  null|string|int $key
  59       * @param  null|mixed $default
  60       * @throws Exception\InvalidArgumentException
  61       * @return mixed
  62       */
  63      public function getMetadata($key = null, $default = null)
  64      {
  65          if (null === $key) {
  66              return $this->metadata;
  67          }
  68  
  69          if (!is_scalar($key)) {
  70              throw new Exception\InvalidArgumentException('Non-scalar argument provided for key');
  71          }
  72  
  73          if (array_key_exists($key, $this->metadata)) {
  74              return $this->metadata[$key];
  75          }
  76  
  77          return $default;
  78      }
  79  
  80      /**
  81       * Set message content
  82       *
  83       * @param  mixed $value
  84       * @return Message
  85       */
  86      public function setContent($value)
  87      {
  88          $this->content = $value;
  89          return $this;
  90      }
  91  
  92      /**
  93       * Get message content
  94       *
  95       * @return mixed
  96       */
  97      public function getContent()
  98      {
  99          return $this->content;
 100      }
 101  
 102      /**
 103       * @return string
 104       */
 105      public function toString()
 106      {
 107          $request = '';
 108          foreach ($this->getMetadata() as $key => $value) {
 109              $request .= sprintf(
 110                  "%s: %s\r\n",
 111                  (string) $key,
 112                  (string) $value
 113              );
 114          }
 115          $request .= "\r\n" . $this->getContent();
 116          return $request;
 117      }
 118  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1