composer package updates
[openemr.git] / vendor / zendframework / zend-mail / src / Header / GenericMultiHeader.php
blob4fb295d6999e4cef32af5d8caa869bc35ca74d90
1 <?php
2 /**
3 * @see https://github.com/zendframework/zend-mail for the canonical source repository
4 * @copyright Copyright (c) 2005-2018 Zend Technologies USA Inc. (https://www.zend.com)
5 * @license https://github.com/zendframework/zend-mail/blob/master/LICENSE.md New BSD License
6 */
8 namespace Zend\Mail\Header;
10 /**
11 * Generic class for Headers with multiple occurs in the same message
13 class GenericMultiHeader extends GenericHeader implements MultipleHeadersInterface
15 public static function fromString($headerLine)
17 list($fieldName, $fieldValue) = GenericHeader::splitHeaderLine($headerLine);
18 $fieldValue = HeaderWrap::mimeDecodeValue($fieldValue);
20 if (strpos($fieldValue, ',')) {
21 $headers = [];
22 foreach (explode(',', $fieldValue) as $multiValue) {
23 $headers[] = new static($fieldName, $multiValue);
25 return $headers;
28 return new static($fieldName, $fieldValue);
31 /**
32 * Cast multiple header objects to a single string header
34 * @param array $headers
35 * @throws Exception\InvalidArgumentException
36 * @return string
38 public function toStringMultipleHeaders(array $headers)
40 $name = $this->getFieldName();
41 $values = [$this->getFieldValue(HeaderInterface::FORMAT_ENCODED)];
43 foreach ($headers as $header) {
44 if (! $header instanceof static) {
45 throw new Exception\InvalidArgumentException(
46 'This method toStringMultipleHeaders was expecting an array of headers of the same type'
49 $values[] = $header->getFieldValue(HeaderInterface::FORMAT_ENCODED);
52 return $name . ': ' . implode(',', $values);