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.
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
- $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 read-only
protected
LoggerInterface|null
$logger
= null
$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|null $dispatcher = null ][, LoggerInterface|null $logger = null ]) : mixed
Parameters
- $dispatcher : EventDispatcherInterface|null = null
- $logger : LoggerInterface|null = 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
Return values
int —the number of messages sent
doSend()
Stores a message in the queue.
protected
doSend(SentMessage $message) : void
Parameters
- $message : SentMessage