Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\MessengerBundle\Message\Traits; | |
| use Symfony\Component\HttpFoundation\Request; | |
| trait MessageRequestTrait | |
| { | |
| private ?\DateTimeInterface $eventTime = null; | |
| private Request $request; | |
| public function getEventTime(): ?\DateTimeInterface | |
| { | |
| return $this->eventTime; | |
| } | |
| public function setEventTime(\DateTimeInterface $eventTime = null): self | |
| { | |
| $this->eventTime = $eventTime; | |
| return $this; | |
| } | |
| public function getRequest(): Request | |
| { | |
| return $this->request; | |
| } | |
| public function __serialize(): array | |
| { | |
| $data = get_object_vars($this); | |
| $data['request'] = array_filter([ | |
| 'attributes' => $this->request->attributes->all(), | |
| 'request' => $this->request->request->all(), | |
| 'query' => $this->request->query->all(), | |
| 'cookies' => $this->request->cookies->all(), | |
| 'files' => $this->request->files->all(), | |
| 'server' => $this->request->server->all(), | |
| ]); | |
| return $data; | |
| } | |
| /** | |
| * @param mixed[] $data | |
| */ | |
| public function __unserialize(array $data): void | |
| { | |
| $requestData = $data['request']; | |
| $data['request'] = new Request( | |
| $requestData['query'] ?? [], | |
| $requestData['request'] ?? [], | |
| $requestData['attributes'] ?? [], | |
| $requestData['cookies'] ?? [], | |
| $requestData['files'] ?? [], | |
| $requestData['server'] ?? [] | |
| ); | |
| foreach ($data as $key => $item) { | |
| $this->$key = $item; | |
| } | |
| } | |
| } | |