Вход Регистрация
Файл: vendor/symfony/mime/Part/Multipart/RelatedPart.php
Строк: 63
<?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 SymfonyComponentMimePartMultipart;

use 
SymfonyComponentMimePartAbstractMultipartPart;
use 
SymfonyComponentMimePartAbstractPart;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 */
final class RelatedPart extends AbstractMultipartPart
{
    private 
AbstractPart $mainPart;

    public function 
__construct(AbstractPart $mainPartAbstractPart $partAbstractPart ...$parts)
    {
        
$this->mainPart $mainPart;
        
$this->prepareParts($part, ...$parts);

        
parent::__construct($part, ...$parts);
    }

    public function 
getParts(): array
    {
        return 
array_merge([$this->mainPart], parent::getParts());
    }

    public function 
getMediaSubtype(): string
    
{
        return 
'related';
    }

    private function 
generateContentId(): string
    
{
        return 
bin2hex(random_bytes(16)).'@symfony';
    }

    private function 
prepareParts(AbstractPart ...$parts): void
    
{
        foreach (
$parts as $part) {
            if (!
$part->getHeaders()->has('Content-ID')) {
                
$part->getHeaders()->setHeaderBody('Id''Content-ID'$this->generateContentId());
            }
        }
    }
}
Онлайн: 0
Реклама