postoffice-1.0.x-dev/src/MailerMiddleware/CleanRenderContext.php

src/MailerMiddleware/CleanRenderContext.php
<?php

namespace Drupal\postoffice\MailerMiddleware;

use Drupal\Core\Render\RenderContext;
use Drupal\Core\Render\Renderer;
use Drupal\Core\Render\RendererInterface;
use Symfony\Component\Mailer\Envelope;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\RawMessage;

/**
 * Implements a mailer middleware which creates a new render context.
 */
class CleanRenderContext implements MailerInterface {

  /**
   * The decorated mailer.
   */
  protected MailerInterface $mailer;

  /**
   * The drupal core renderer.
   */
  protected RendererInterface $renderer;

  /**
   * Constructs new anonymous account mailer middleware.
   */
  public function __construct(MailerInterface $mailer, Renderer $renderer) {
    $this->mailer = $mailer;
    $this->renderer = $renderer;
  }

  /**
   * {@inheritdoc}
   */
  public function send(RawMessage $message, ?Envelope $envelope = NULL): void {
    $this->renderer->executeInRenderContext(
      new RenderContext(),
      fn() => $this->mailer->send($message, $envelope)
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc