Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

SMimePart.php

Namespace

Symfony\Component\Mime\Part

File

vendor/symfony/mime/Part/SMimePart.php

View source
<?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\Part;

use Symfony\Component\Mime\Header\Headers;

/**
 * @author Sebastiaan Stok <s.stok@rollerscapes.net>
 */
class SMimePart extends AbstractPart {
    
    /** @internal */
    protected Headers $_headers;
    public function __construct(iterable|string $body, string $type, string $subtype, array $parameters) {
        parent::__construct();
    }
    public function getMediaType() : string {
        return $this->type;
    }
    public function getMediaSubtype() : string {
        return $this->subtype;
    }
    public function bodyToString() : string {
        if (\is_string($this->body)) {
            return $this->body;
        }
        $body = '';
        foreach ($this->body as $chunk) {
            $body .= $chunk;
        }
        $this->body = $body;
        return $body;
    }
    public function bodyToIterable() : iterable {
        if (\is_string($this->body)) {
            (yield $this->body);
            return;
        }
        $body = '';
        foreach ($this->body as $chunk) {
            $body .= $chunk;
            (yield $chunk);
        }
        $this->body = $body;
    }
    public function getPreparedHeaders() : Headers {
        $headers = clone parent::getHeaders();
        $headers->setHeaderBody('Parameterized', 'Content-Type', $this->getMediaType() . '/' . $this->getMediaSubtype());
        foreach ($this->parameters as $name => $value) {
            $headers->setHeaderParameter('Content-Type', $name, $value);
        }
        return $headers;
    }
    public function __sleep() : array {
        // convert iterables to strings for serialization
        if (is_iterable($this->body)) {
            $this->body = $this->bodyToString();
        }
        $this->_headers = $this->getHeaders();
        return [
            '_headers',
            'body',
            'type',
            'subtype',
            'parameters',
        ];
    }
    public function __wakeup() : void {
        $r = new \ReflectionProperty(AbstractPart::class, 'headers');
        $r->setValue($this, $this->_headers);
        unset($this->_headers);
    }

}

Classes

Title Deprecated Summary
SMimePart @author Sebastiaan Stok <s.stok@rollerscapes.net>

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal