getSession(); if (!$session->has(self::SESSION_KEY)) { return null; } $dto = $session->get(self::SESSION_KEY); if (!$dto instanceof AccommodationBookingDto) { return null; } return $dto; } public function getOrFail(Request $request): AccommodationBookingDto { $dto = $this->getDto($request); if (null === $dto) { throw new AccommodationSessionNotFoundException(); } return $dto; } public function save(Request $request, AccommodationBookingDto $dto): void { $request->getSession()->set(self::SESSION_KEY, $dto); } public function clear(Request $request): void { $request->getSession()->remove(self::SESSION_KEY); } }