uniqueId = Ulid::generate(); $this->timestamp = time(); } protected function getQueue(): Queue { if ($this->queue === '') { $this->queue = static::DEFAULT_QUEUE; } return new $this->queue(); } public function getId(): string { return $this->id; } /** * @param string $id */ public function setId(string $id): void { $this->id = $id; } public function getPayload(): array { return $this->payload; } public function getTimestamp(): int { return $this->timestamp; } public function __serialize(): array { return [ 'id' => $this->id, 'payload' => $this->payload, 'timestamp' => $this->timestamp, 'queue' => $this->queue, ]; } public function __unserialize(array $data): void { $this->id = $data['id']; $this->payload = $data['payload']; $this->timestamp = $data['timestamp']; $this->queue = $data['queue']; } public function serialize(): string { return serialize($this); } public function unserialize(string $data): Message { $unserializedData = unserialize($data, ['allowed_classes' => [Message::class]]); $this->id = $unserializedData['id']; $this->uniqueId = $unserializedData['uniqueId']; $this->payload = $unserializedData['payload']; $this->timestamp = $unserializedData['timestamp']; $this->queue = $unserializedData['queue']; return $this; } }