From ab3dec11254e084094b5626f16498a64bdf00f0d Mon Sep 17 00:00:00 2001 From: Guilhem N <egetick@gmail.com> Date: Wed, 30 Nov 2016 16:52:13 +0100 Subject: [PATCH] Test .{_format} removal --- ApiDocGenerator.php | 16 +++++++++++++++- Tests/Functional/Controller/ApiController.php | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ApiDocGenerator.php b/ApiDocGenerator.php index f3ba3cf..a631155 100644 --- a/ApiDocGenerator.php +++ b/ApiDocGenerator.php @@ -13,18 +13,21 @@ namespace EXSyst\Bundle\ApiDocBundle; use EXSyst\Bundle\ApiDocBundle\Describer\DescriberInterface; use EXSyst\Component\Swagger\Swagger; +use Psr\Cache\CacheItemPoolInterface; final class ApiDocGenerator { private $swagger; private $describers; + private $cacheItemPool; /** * @param DescriberInterface[] $describers */ - public function __construct(array $describers) + public function __construct(array $describers, CacheItemPoolInterface $cacheItemPool = null) { $this->describers = $describers; + $this->cacheItemPool = $cacheItemPool; } public function generate(): Swagger @@ -33,11 +36,22 @@ final class ApiDocGenerator 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; } } diff --git a/Tests/Functional/Controller/ApiController.php b/Tests/Functional/Controller/ApiController.php index b814b11..8142aa1 100644 --- a/Tests/Functional/Controller/ApiController.php +++ b/Tests/Functional/Controller/ApiController.php @@ -29,7 +29,7 @@ class ApiController } /** - * @Route("/fosrest", methods={"POST"}) + * @Route("/fosrest.{_format}", methods={"POST"}) * @QueryParam(name="foo") * @RequestParam(name="bar") */