Skip to content

Commit

Permalink
feat: Migrate MessageHandlers to AsMessageHandler attribute
Browse files Browse the repository at this point in the history
  • Loading branch information
ambroisemaupate committed Jun 1, 2024
1 parent d94b132 commit 51bc2d3
Show file tree
Hide file tree
Showing 20 changed files with 71 additions and 101 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,22 @@
use RZ\Roadiz\CoreBundle\Mailer\EmailManager;
use RZ\Roadiz\Documents\Models\DocumentInterface;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Mime\Address;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Error\SyntaxError;

final class CustomFormAnswerNotifyMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class CustomFormAnswerNotifyMessageHandler
{
public function __construct(
private ManagerRegistry $managerRegistry,
private EmailManager $emailManager,
private Settings $settingsBag,
private FilesystemOperator $documentsStorage,
private LoggerInterface $logger,
private readonly ManagerRegistry $managerRegistry,
private readonly EmailManager $emailManager,
private readonly Settings $settingsBag,
private readonly FilesystemOperator $documentsStorage,
private readonly LoggerInterface $logger,
) {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,17 @@
use Psr\Log\LoggerInterface;
use RZ\Roadiz\CoreBundle\Document\Message\AbstractDocumentMessage;
use RZ\Roadiz\Documents\Models\DocumentInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Exception\RecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;

abstract class AbstractDocumentMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
abstract class AbstractDocumentMessageHandler
{
protected ManagerRegistry $managerRegistry;
protected LoggerInterface $logger;
protected FilesystemOperator $documentsStorage;

/**
* @param ManagerRegistry $managerRegistry
* @param LoggerInterface $messengerLogger
* @param FilesystemOperator $documentsStorage
*/
public function __construct(
ManagerRegistry $managerRegistry,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage
protected readonly ManagerRegistry $managerRegistry,
protected readonly LoggerInterface $messengerLogger,
protected readonly FilesystemOperator $documentsStorage
) {
$this->managerRegistry = $managerRegistry;
$this->logger = $messengerLogger;
$this->documentsStorage = $documentsStorage;
}

abstract protected function supports(DocumentInterface $document): bool;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,20 @@
*
* Detect Audio and Video files metadata using https://github.com/JamesHeinrich/getID3 lib
* And extract video thumbnail using local ffmpeg.
*
* @see https://github.com/JamesHeinrich/getID3
*/
final class DocumentAudioVideoMessageHandler extends AbstractLockingDocumentMessageHandler
{
private DocumentFactory $documentFactory;
private EventDispatcherInterface $eventDispatcher;
private ?string $ffmpegPath;

public function __construct(
DocumentFactory $documentFactory,
EventDispatcherInterface $eventDispatcher,
?string $ffmpegPath,
private readonly DocumentFactory $documentFactory,
private readonly EventDispatcherInterface $eventDispatcher,
private readonly ?string $ffmpegPath,
ManagerRegistry $managerRegistry,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage
) {
parent::__construct($managerRegistry, $messengerLogger, $documentsStorage);
$this->ffmpegPath = $ffmpegPath;
$this->documentFactory = $documentFactory;
$this->eventDispatcher = $eventDispatcher;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,13 @@

final class DocumentAverageColorMessageHandler extends AbstractLockingDocumentMessageHandler
{
private ImageManager $imageManager;

public function __construct(
private readonly ImageManager $imageManager,
ManagerRegistry $managerRegistry,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage,
ImageManager $imageManager
) {
parent::__construct($managerRegistry, $messengerLogger, $documentsStorage);
$this->imageManager = $imageManager;
}

/**
Expand Down Expand Up @@ -53,7 +50,7 @@ protected function processMessage(AbstractDocumentMessage $message, DocumentInte
$mediumColor = (new AverageColorResolver())->getAverageColor($this->imageManager->make($documentStream));
$document->setImageAverageColor($mediumColor);
} catch (NotReadableException $exception) {
$this->logger->warning(
$this->messengerLogger->warning(
'Document file is not a readable image.',
[
'path' => $document->getMountPath(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ function_exists('exif_read_data') &&
$description = $this->getDescription($exif);

if (null !== $copyright || null !== $description) {
$this->logger->debug(
$this->messengerLogger->debug(
'EXIF information available for document.',
[
'document' => (string)$document
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ protected function processMessage(AbstractDocumentMessage $message, DocumentInte
try {
$document->setFilesize($this->documentsStorage->fileSize($document->getMountPath()));
} catch (FilesystemException $exception) {
$this->logger->warning($exception->getMessage());
$this->messengerLogger->warning($exception->getMessage());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,14 @@

final class DocumentPdfMessageHandler extends AbstractLockingDocumentMessageHandler
{
private DocumentFactory $documentFactory;
private EventDispatcherInterface $eventDispatcher;

public function __construct(
DocumentFactory $documentFactory,
EventDispatcherInterface $eventDispatcher,
private readonly DocumentFactory $documentFactory,
private readonly EventDispatcherInterface $eventDispatcher,
ManagerRegistry $managerRegistry,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage
) {
parent::__construct($managerRegistry, $messengerLogger, $documentsStorage);
$this->documentFactory = $documentFactory;
$this->eventDispatcher = $eventDispatcher;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,13 @@

final class DocumentRawMessageHandler extends AbstractLockingDocumentMessageHandler
{
private DownscaleImageManager $downscaleImageManager;

public function __construct(
DownscaleImageManager $downscaleImageManager,
private readonly DownscaleImageManager $downscaleImageManager,
ManagerRegistry $managerRegistry,
LoggerInterface $logger,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage
) {
parent::__construct($managerRegistry, $logger, $documentsStorage);
$this->downscaleImageManager = $downscaleImageManager;
parent::__construct($managerRegistry, $messengerLogger, $documentsStorage);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,13 @@

final class DocumentSizeMessageHandler extends AbstractLockingDocumentMessageHandler
{
private ImageManager $imageManager;

public function __construct(
private readonly ImageManager $imageManager,
ManagerRegistry $managerRegistry,
LoggerInterface $messengerLogger,
FilesystemOperator $documentsStorage,
ImageManager $imageManager
) {
parent::__construct($managerRegistry, $messengerLogger, $documentsStorage);
$this->imageManager = $imageManager;
}

/**
Expand All @@ -46,7 +43,7 @@ protected function processMessage(AbstractDocumentMessage $message, DocumentInte
$document->setImageWidth($imageProcess->width());
$document->setImageHeight($imageProcess->height());
} catch (NotReadableException $exception) {
$this->logger->warning(
$this->messengerLogger->warning(
'Document file is not a readable image.',
[
'path' => $document->getMountPath(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ protected function processMessage(AbstractDocumentMessage $message, DocumentInte
// Load the dirty svg
$dirtySVG = $this->documentsStorage->read($document->getMountPath());
$this->documentsStorage->write($document->getMountPath(), $sanitizer->sanitize($dirtySVG));
$this->logger->info('Svg document sanitized.');
$this->messengerLogger->info('Svg document sanitized.');

/*
* Resolve SVG size
Expand All @@ -48,7 +48,7 @@ protected function processMessage(AbstractDocumentMessage $message, DocumentInte
$document->setImageWidth($svgSizeResolver->getWidth());
$document->setImageHeight($svgSizeResolver->getHeight());
} catch (\RuntimeException $exception) {
$this->logger->error($exception->getMessage());
$this->messengerLogger->error($exception->getMessage());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,16 @@
namespace RZ\Roadiz\CoreBundle\Message\Handler;

use Doctrine\Persistence\ManagerRegistry;
use RZ\Roadiz\Core\Handlers\HandlerFactoryInterface;
use RZ\Roadiz\CoreBundle\Entity\Node;
use RZ\Roadiz\CoreBundle\Entity\Realm;
use RZ\Roadiz\CoreBundle\Entity\RealmNode;
use RZ\Roadiz\CoreBundle\EntityHandler\NodeHandler;
use RZ\Roadiz\CoreBundle\Message\ApplyRealmNodeInheritanceMessage;
use RZ\Roadiz\CoreBundle\Model\RealmInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;

final class ApplyRealmNodeInheritanceMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class ApplyRealmNodeInheritanceMessageHandler
{
public function __construct(private readonly ManagerRegistry $managerRegistry)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,15 @@
namespace RZ\Roadiz\CoreBundle\Message\Handler;

use Doctrine\Persistence\ManagerRegistry;
use RZ\Roadiz\Core\Handlers\HandlerFactoryInterface;
use RZ\Roadiz\CoreBundle\Entity\Node;
use RZ\Roadiz\CoreBundle\Entity\Realm;
use RZ\Roadiz\CoreBundle\Entity\RealmNode;
use RZ\Roadiz\CoreBundle\EntityHandler\NodeHandler;
use RZ\Roadiz\CoreBundle\Message\CleanRealmNodeInheritanceMessage;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;

final class CleanRealmNodeInheritanceMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class CleanRealmNodeInheritanceMessageHandler
{
public function __construct(private readonly ManagerRegistry $managerRegistry)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
use RZ\Roadiz\CoreBundle\EntityHandler\NodeTypeHandler;
use RZ\Roadiz\CoreBundle\Message\DeleteNodeTypeMessage;
use RZ\Roadiz\CoreBundle\Message\UpdateDoctrineSchemaMessage;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\MessageBusInterface;

final class DeleteNodeTypeMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class DeleteNodeTypeMessageHandler
{
public function __construct(
private readonly ManagerRegistry $managerRegistry,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@
use GuzzleHttp\Exception\GuzzleException;
use Psr\Log\LoggerInterface;
use RZ\Roadiz\CoreBundle\Message\HttpRequestMessage;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;

final class HttpRequestMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class HttpRequestMessageHandler
{
public function __construct(
private readonly LoggerInterface $logger
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@
use RZ\Roadiz\CoreBundle\Message\PurgeReverseProxyCacheMessage;
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Exception\NoHandlerForMessageException;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;

final class PurgeReverseProxyCacheMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class PurgeReverseProxyCacheMessageHandler
{
public function __construct(
private readonly MessageBusInterface $bus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
use RZ\Roadiz\CoreBundle\Message\CleanRealmNodeInheritanceMessage;
use RZ\Roadiz\CoreBundle\Message\SearchRealmNodeInheritanceMessage;
use RZ\Roadiz\CoreBundle\Model\RealmInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\MessageBusInterface;

final class SearchRealmNodeInheritanceMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class SearchRealmNodeInheritanceMessageHandler
{
public function __construct(
private readonly ManagerRegistry $managerRegistry,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@

use RZ\Roadiz\CoreBundle\Doctrine\SchemaUpdater;
use RZ\Roadiz\CoreBundle\Message\UpdateDoctrineSchemaMessage;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;

final class UpdateDoctrineSchemaMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class UpdateDoctrineSchemaMessageHandler
{
public function __construct(private readonly SchemaUpdater $schemaUpdater)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
use RZ\Roadiz\CoreBundle\EntityHandler\NodeTypeHandler;
use RZ\Roadiz\CoreBundle\Message\UpdateDoctrineSchemaMessage;
use RZ\Roadiz\CoreBundle\Message\UpdateNodeTypeSchemaMessage;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\MessageBusInterface;

final class UpdateNodeTypeSchemaMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class UpdateNodeTypeSchemaMessageHandler
{
public function __construct(
private readonly ManagerRegistry $managerRegistry,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,15 @@
use RZ\Roadiz\CoreBundle\Exception\SolrServerNotAvailableException;
use RZ\Roadiz\CoreBundle\SearchEngine\Indexer\IndexerFactoryInterface;
use RZ\Roadiz\CoreBundle\SearchEngine\Message\SolrDeleteMessage;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;

final class SolrDeleteMessageHandler implements MessageHandlerInterface
#[AsMessageHandler]
final class SolrDeleteMessageHandler
{
private LoggerInterface $logger;
private IndexerFactoryInterface $indexerFactory;

public function __construct(IndexerFactoryInterface $indexerFactory, LoggerInterface $searchEngineLogger)
{
$this->logger = $searchEngineLogger;
$this->indexerFactory = $indexerFactory;
public function __construct(
private readonly IndexerFactoryInterface $indexerFactory,
private readonly LoggerInterface $searchEngineLogger
) {
}

public function __invoke(SolrDeleteMessage $message): void
Expand All @@ -32,7 +30,7 @@ public function __invoke(SolrDeleteMessage $message): void
} catch (SolrServerNotAvailableException $exception) {
return;
} catch (\LogicException $exception) {
$this->logger->error($exception->getMessage());
$this->searchEngineLogger->error($exception->getMessage());
}
}
}
Loading

0 comments on commit 51bc2d3

Please sign in to comment.