describers = $describers; $this->cacheItemPool = $cacheItemPool; } public function generate(): Swagger { if (null !== $this->swagger) { return $this->swagger; } if ($this->cacheItemPool) { $item = $this->cacheItemPool->getItem('swagger_doc'); if ($item->isHit()) { return $this->swagger = $item->get(); } } $this->swagger = new Swagger(); foreach ($this->describers as $describer) { $describer->describe($this->swagger); } if (isset($item)) { $this->cacheItemPool->save($item->set($this->swagger)); } return $this->swagger; } }