Update to laravel 7

This commit is contained in:
KodeStar
2022-03-10 11:54:29 +00:00
parent 61a5a1a8b0
commit f9a19fce91
7170 changed files with 274189 additions and 283773 deletions

View File

@@ -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));