MemorySpool extends AbstractTransport implements SingletonInterface, DelayedTransportInterface uses BlockSerializationTrait

Because TYPO3 doesn't offer a terminate signal or hook, and taking in account the risk that extensions do some redirects or even exit, we simply use the destructor of a singleton class which should be pretty much at the end of a request.

To have only one memory spool per request seems to be more appropriate anyway.

Internal

This class is experimental and subject to change!

Table of Contents

Interfaces

SingletonInterface
"empty" interface for singletons (marker interface pattern)
DelayedTransportInterface
Used to implement backwards-compatible spooling

Properties

$logger  : LoggerInterface|null
The logger instance.
$queuedMessages  : array<string|int, SentMessage>
$retries  : int
Maximum number of retries when the real transport has failed.

Methods

__construct()  : mixed
Create a new MemorySpool
__destruct()  : mixed
Sends out the messages in the memory
__toString()  : string
__wakeup()  : mixed
Deny object deserialization.
flushQueue()  : int
Sends messages using the given transport instance
doSend()  : void
Stores a message in the queue.

Properties

$logger

The logger instance.

protected LoggerInterface|null $logger

$queuedMessages

protected array<string|int, SentMessage> $queuedMessages = []

$retries

Maximum number of retries when the real transport has failed.

protected int $retries = 3

Methods

__construct()

Create a new MemorySpool

public __construct([EventDispatcherInterface $dispatcher = null ][, LoggerInterface $logger = null ]) : mixed
Parameters
$dispatcher : EventDispatcherInterface = null
$logger : LoggerInterface = null

__destruct()

Sends out the messages in the memory

public __destruct() : mixed

__toString()

public __toString() : string
Return values
string

__wakeup()

Deny object deserialization.

public __wakeup() : mixed

flushQueue()

Sends messages using the given transport instance

public flushQueue(TransportInterface $transport) : int
Parameters
$transport : TransportInterface
Tags
inheritdoc
Return values
int

the number of messages sent

doSend()

Stores a message in the queue.

protected doSend(SentMessage $message) : void
Parameters
$message : SentMessage

        
On this page

Search results