first commit

This commit is contained in:
Sampanna Rimal
2024-08-27 17:48:06 +05:45
commit 53c0140f58
10839 changed files with 1125847 additions and 0 deletions

View File

@ -0,0 +1,37 @@
<?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\Mailer\Event;
use Symfony\Component\Mime\RawMessage;
use Symfony\Contracts\EventDispatcher\Event;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
final class FailedMessageEvent extends Event
{
public function __construct(
private RawMessage $message,
private \Throwable $error,
) {
}
public function getMessage(): RawMessage
{
return $this->message;
}
public function getError(): \Throwable
{
return $this->error;
}
}

View File

@ -0,0 +1,105 @@
<?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\Mailer\Event;
use Symfony\Component\Mailer\Envelope;
use Symfony\Component\Mailer\Exception\LogicException;
use Symfony\Component\Messenger\Stamp\StampInterface;
use Symfony\Component\Mime\RawMessage;
use Symfony\Contracts\EventDispatcher\Event;
/**
* Allows the transformation of a Message and the Envelope before the email is sent.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
final class MessageEvent extends Event
{
private RawMessage $message;
private Envelope $envelope;
private string $transport;
private bool $queued;
private bool $rejected = false;
/** @var StampInterface[] */
private array $stamps = [];
public function __construct(RawMessage $message, Envelope $envelope, string $transport, bool $queued = false)
{
$this->message = $message;
$this->envelope = $envelope;
$this->transport = $transport;
$this->queued = $queued;
}
public function getMessage(): RawMessage
{
return $this->message;
}
public function setMessage(RawMessage $message): void
{
$this->message = $message;
}
public function getEnvelope(): Envelope
{
return $this->envelope;
}
public function setEnvelope(Envelope $envelope): void
{
$this->envelope = $envelope;
}
public function getTransport(): string
{
return $this->transport;
}
public function isQueued(): bool
{
return $this->queued;
}
public function isRejected(): bool
{
return $this->rejected;
}
public function reject(): void
{
$this->rejected = true;
$this->stopPropagation();
}
public function addStamp(StampInterface $stamp): void
{
if (!$this->queued) {
throw new LogicException(sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
}
$this->stamps[] = $stamp;
}
/**
* @return StampInterface[]
*/
public function getStamps(): array
{
if (!$this->queued) {
throw new LogicException(sprintf('Cannot call "%s()" on a message that is not meant to be queued.', __METHOD__));
}
return $this->stamps;
}
}

View File

@ -0,0 +1,74 @@
<?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\Mailer\Event;
use Symfony\Component\Mime\RawMessage;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
class MessageEvents
{
/**
* @var MessageEvent[]
*/
private array $events = [];
/**
* @var array<string, bool>
*/
private array $transports = [];
public function add(MessageEvent $event): void
{
$this->events[] = $event;
$this->transports[$event->getTransport()] = true;
}
public function getTransports(): array
{
return array_keys($this->transports);
}
/**
* @return MessageEvent[]
*/
public function getEvents(?string $name = null): array
{
if (null === $name) {
return $this->events;
}
$events = [];
foreach ($this->events as $event) {
if ($name === $event->getTransport()) {
$events[] = $event;
}
}
return $events;
}
/**
* @return RawMessage[]
*/
public function getMessages(?string $name = null): array
{
$events = $this->getEvents($name);
$messages = [];
foreach ($events as $event) {
$messages[] = $event->getMessage();
}
return $messages;
}
}

View File

@ -0,0 +1,30 @@
<?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\Mailer\Event;
use Symfony\Component\Mailer\SentMessage;
use Symfony\Contracts\EventDispatcher\Event;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
final class SentMessageEvent extends Event
{
public function __construct(private SentMessage $message)
{
}
public function getMessage(): SentMessage
{
return $this->message;
}
}