/** * @param OutgoingPhysicalMessageContext $context * @param callable $next */ public function invoke($context, callable $next) { $mutatorIds = $this->mutatorRegistry->getOutgoingPhysicalMessageMutatorIds(); if (empty($mutatorIds)) { $next(); return; } $physicalMessage = $context->getMessage(); $mutatorContext = new OutgoingPhysicalMessageMutationContext($physicalMessage->getBody(), $physicalMessage->getHeaders()); foreach ($mutatorIds as $mutatorId) { /** @var OutgoingPhysicalMessageMutatorInterface $mutator */ $mutator = $context->getBuilder()->build($mutatorId); $mutator->mutateOutgoing($mutatorContext); } $physicalMessage->replaceBody($mutatorContext->getBody()); $physicalMessage->replaceHeaders($mutatorContext->getHeaders()); $next(); }
/** * @param OutgoingLogicalMessageContext $context * @param callable $next */ public function invoke($context, callable $next) { $mutatorIds = $this->mutatorRegistry->getOutgoingLogicalMessageMutatorIds(); if (empty($mutatorIds)) { $next(); return; } $logicalMessage = $context->getMessage(); $messageInstance = $logicalMessage->getMessageInstance(); $mutatorContext = new OutgoingLogicalMessageMutationContext($messageInstance, $context->getHeaders()); foreach ($mutatorIds as $mutatorId) { /** @var OutgoingLogicalMessageMutatorInterface $mutator */ $mutator = $context->getBuilder()->build($mutatorId); $mutator->mutateOutgoing($mutatorContext); } if ($mutatorContext->hasMessageChanged()) { $logicalMessage->updateInstance($mutatorContext->getMessage()); } $context->replaceHeaders($mutatorContext->getHeaders()); $next(); }
/** * @param string $mutatorContainerId */ public function registerOutgoingPhysicalMessageMutator($mutatorContainerId) { $this->messageMutatorRegistry->registerOutgoingPhysicalMessageMutator($mutatorContainerId); }