mirror of
https://github.com/linuxserver/Heimdall.git
synced 2025-12-07 07:23:58 +09:00
Update to laravel 7
This commit is contained in:
104
vendor/symfony/mime/Header/Headers.php
vendored
104
vendor/symfony/mime/Header/Headers.php
vendored
@@ -13,22 +13,35 @@ namespace Symfony\Component\Mime\Header;
|
||||
|
||||
use Symfony\Component\Mime\Address;
|
||||
use Symfony\Component\Mime\Exception\LogicException;
|
||||
use Symfony\Component\Mime\NamedAddress;
|
||||
|
||||
/**
|
||||
* A collection of headers.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @experimental in 4.3
|
||||
*/
|
||||
final class Headers
|
||||
{
|
||||
private static $uniqueHeaders = [
|
||||
private const UNIQUE_HEADERS = [
|
||||
'date', 'from', 'sender', 'reply-to', 'to', 'cc', 'bcc',
|
||||
'message-id', 'in-reply-to', 'references', 'subject',
|
||||
];
|
||||
private const HEADER_CLASS_MAP = [
|
||||
'date' => DateHeader::class,
|
||||
'from' => MailboxListHeader::class,
|
||||
'sender' => MailboxHeader::class,
|
||||
'reply-to' => MailboxListHeader::class,
|
||||
'to' => MailboxListHeader::class,
|
||||
'cc' => MailboxListHeader::class,
|
||||
'bcc' => MailboxListHeader::class,
|
||||
'message-id' => IdentificationHeader::class,
|
||||
'in-reply-to' => UnstructuredHeader::class, // `In-Reply-To` and `References` are less strict than RFC 2822 (3.6.4) to allow users entering the original email's ...
|
||||
'references' => UnstructuredHeader::class, // ... `Message-ID`, even if that is no valid `msg-id`
|
||||
'return-path' => PathHeader::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var HeaderInterface[][]
|
||||
*/
|
||||
private $headers = [];
|
||||
private $lineLength = 76;
|
||||
|
||||
@@ -51,7 +64,7 @@ final class Headers
|
||||
public function setMaxLineLength(int $lineLength)
|
||||
{
|
||||
$this->lineLength = $lineLength;
|
||||
foreach ($this->getAll() as $header) {
|
||||
foreach ($this->all() as $header) {
|
||||
$header->setMaxLineLength($lineLength);
|
||||
}
|
||||
}
|
||||
@@ -62,21 +75,21 @@ final class Headers
|
||||
}
|
||||
|
||||
/**
|
||||
* @param (NamedAddress|Address|string)[] $addresses
|
||||
* @param array<Address|string> $addresses
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addMailboxListHeader(string $name, array $addresses)
|
||||
public function addMailboxListHeader(string $name, array $addresses): self
|
||||
{
|
||||
return $this->add(new MailboxListHeader($name, Address::createArray($addresses)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param NamedAddress|Address|string $address
|
||||
* @param Address|string $address
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addMailboxHeader(string $name, $address)
|
||||
public function addMailboxHeader(string $name, $address): self
|
||||
{
|
||||
return $this->add(new MailboxHeader($name, Address::create($address)));
|
||||
}
|
||||
@@ -86,7 +99,7 @@ final class Headers
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addIdHeader(string $name, $ids)
|
||||
public function addIdHeader(string $name, $ids): self
|
||||
{
|
||||
return $this->add(new IdentificationHeader($name, $ids));
|
||||
}
|
||||
@@ -96,7 +109,7 @@ final class Headers
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addPathHeader(string $name, $path)
|
||||
public function addPathHeader(string $name, $path): self
|
||||
{
|
||||
return $this->add(new PathHeader($name, $path instanceof Address ? $path : new Address($path)));
|
||||
}
|
||||
@@ -104,7 +117,7 @@ final class Headers
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function addDateHeader(string $name, \DateTimeInterface $dateTime)
|
||||
public function addDateHeader(string $name, \DateTimeInterface $dateTime): self
|
||||
{
|
||||
return $this->add(new DateHeader($name, $dateTime));
|
||||
}
|
||||
@@ -112,7 +125,7 @@ final class Headers
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function addTextHeader(string $name, string $value)
|
||||
public function addTextHeader(string $name, string $value): self
|
||||
{
|
||||
return $this->add(new UnstructuredHeader($name, $value));
|
||||
}
|
||||
@@ -120,11 +133,27 @@ final class Headers
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function addParameterizedHeader(string $name, string $value, array $params = [])
|
||||
public function addParameterizedHeader(string $name, string $value, array $params = []): self
|
||||
{
|
||||
return $this->add(new ParameterizedHeader($name, $value, $params));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function addHeader(string $name, $argument, array $more = []): self
|
||||
{
|
||||
$parts = explode('\\', self::HEADER_CLASS_MAP[strtolower($name)] ?? UnstructuredHeader::class);
|
||||
$method = 'add'.ucfirst(array_pop($parts));
|
||||
if ('addUnstructuredHeader' === $method) {
|
||||
$method = 'addTextHeader';
|
||||
} elseif ('addIdentificationHeader' === $method) {
|
||||
$method = 'addIdHeader';
|
||||
}
|
||||
|
||||
return $this->$method($name, $argument, $more);
|
||||
}
|
||||
|
||||
public function has(string $name): bool
|
||||
{
|
||||
return isset($this->headers[strtolower($name)]);
|
||||
@@ -133,30 +162,14 @@ final class Headers
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function add(HeaderInterface $header)
|
||||
public function add(HeaderInterface $header): self
|
||||
{
|
||||
static $map = [
|
||||
'date' => DateHeader::class,
|
||||
'from' => MailboxListHeader::class,
|
||||
'sender' => MailboxHeader::class,
|
||||
'reply-to' => MailboxListHeader::class,
|
||||
'to' => MailboxListHeader::class,
|
||||
'cc' => MailboxListHeader::class,
|
||||
'bcc' => MailboxListHeader::class,
|
||||
'message-id' => IdentificationHeader::class,
|
||||
'in-reply-to' => IdentificationHeader::class,
|
||||
'references' => IdentificationHeader::class,
|
||||
'return-path' => PathHeader::class,
|
||||
];
|
||||
self::checkHeaderClass($header);
|
||||
|
||||
$header->setMaxLineLength($this->lineLength);
|
||||
$name = strtolower($header->getName());
|
||||
|
||||
if (isset($map[$name]) && !$header instanceof $map[$name]) {
|
||||
throw new LogicException(sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), $map[$name], \get_class($header)));
|
||||
}
|
||||
|
||||
if (\in_array($name, self::$uniqueHeaders, true) && isset($this->headers[$name]) && \count($this->headers[$name]) > 0) {
|
||||
if (\in_array($name, self::UNIQUE_HEADERS, true) && isset($this->headers[$name]) && \count($this->headers[$name]) > 0) {
|
||||
throw new LogicException(sprintf('Impossible to set header "%s" as it\'s already defined and must be unique.', $header->getName()));
|
||||
}
|
||||
|
||||
@@ -177,7 +190,7 @@ final class Headers
|
||||
return array_shift($values);
|
||||
}
|
||||
|
||||
public function getAll(string $name = null): iterable
|
||||
public function all(string $name = null): iterable
|
||||
{
|
||||
if (null === $name) {
|
||||
foreach ($this->headers as $name => $collection) {
|
||||
@@ -204,7 +217,19 @@ final class Headers
|
||||
|
||||
public static function isUniqueHeader(string $name): bool
|
||||
{
|
||||
return \in_array($name, self::$uniqueHeaders, true);
|
||||
return \in_array(strtolower($name), self::UNIQUE_HEADERS, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws LogicException if the header name and class are not compatible
|
||||
*/
|
||||
public static function checkHeaderClass(HeaderInterface $header): void
|
||||
{
|
||||
$name = strtolower($header->getName());
|
||||
|
||||
if (($c = self::HEADER_CLASS_MAP[$name] ?? null) && !$header instanceof $c) {
|
||||
throw new LogicException(sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), $c, get_debug_type($header)));
|
||||
}
|
||||
}
|
||||
|
||||
public function toString(): string
|
||||
@@ -220,7 +245,7 @@ final class Headers
|
||||
public function toArray(): array
|
||||
{
|
||||
$arr = [];
|
||||
foreach ($this->getAll() as $header) {
|
||||
foreach ($this->all() as $header) {
|
||||
if ('' !== $header->getBodyAsString()) {
|
||||
$arr[] = $header->toString();
|
||||
}
|
||||
@@ -232,7 +257,7 @@ final class Headers
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
public function getHeaderBody($name)
|
||||
public function getHeaderBody(string $name)
|
||||
{
|
||||
return $this->has($name) ? $this->get($name)->getBody() : null;
|
||||
}
|
||||
@@ -249,9 +274,6 @@ final class Headers
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
public function getHeaderParameter(string $name, string $parameter): ?string
|
||||
{
|
||||
if (!$this->has($name)) {
|
||||
@@ -269,7 +291,7 @@ final class Headers
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
public function setHeaderParameter(string $name, string $parameter, $value): void
|
||||
public function setHeaderParameter(string $name, string $parameter, ?string $value): void
|
||||
{
|
||||
if (!$this->has($name)) {
|
||||
throw new LogicException(sprintf('Unable to set parameter "%s" on header "%s" as the header is not defined.', $parameter, $name));
|
||||
|
||||
Reference in New Issue
Block a user