diff options
Diffstat (limited to 'vendor/symfony/mime/RawMessage.php')
| -rw-r--r-- | vendor/symfony/mime/RawMessage.php | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/vendor/symfony/mime/RawMessage.php b/vendor/symfony/mime/RawMessage.php new file mode 100644 index 0000000000..16b090c954 --- /dev/null +++ b/vendor/symfony/mime/RawMessage.php @@ -0,0 +1,87 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime; + +/** + * @author Fabien Potencier <fabien@symfony.com> + * + * @experimental in 4.3 + */ +class RawMessage implements \Serializable +{ + private $message; + + /** + * @param iterable|string $message + */ + public function __construct($message) + { + $this->message = $message; + } + + public function toString(): string + { + if (\is_string($this->message)) { + return $this->message; + } + + return $this->message = implode('', iterator_to_array($this->message, false)); + } + + public function toIterable(): iterable + { + if (\is_string($this->message)) { + yield $this->message; + + return; + } + + $message = ''; + foreach ($this->message as $chunk) { + $message .= $chunk; + yield $chunk; + } + $this->message = $message; + } + + /** + * @internal + */ + final public function serialize() + { + return serialize($this->__serialize()); + } + + /** + * @internal + */ + final public function unserialize($serialized) + { + $this->__unserialize(unserialize($serialized)); + } + + /** + * @internal + */ + public function __serialize(): array + { + return [$this->message]; + } + + /** + * @internal + */ + public function __unserialize(array $data): void + { + [$this->message] = $data; + } +} |
