cache->get('bpn_insurances', function (ItemInterface $item) use ($filename) { $item->expiresAfter(3 * 60 * 60); $crawler = $this->loadXml($filename); return $this->insuranceParser->parse($crawler); }); } catch (InvalidArgumentException $e) { return []; } } public function loadById(string|int $id, ?string $filename = 'versicherungen.xml'): ?Insurance { $insurances = $this->loadAll($filename); return $insurances[$id] ?? null; } private function loadXml(?string $filename = 'versicherungen.xml'): Crawler { $xml = $this->xmlExport->read($filename); return new Crawler($xml); } }