From 47b1bbc00dc40bb9ff8ecb243d434a65aae49eb7 Mon Sep 17 00:00:00 2001 From: Gocha Ossinkine Date: Sun, 10 Jul 2022 23:18:10 +0500 Subject: [PATCH] Add generics to cache item --- extension.neon | 1 + stubs/Psr/Cache/CacheItemInterface.stub | 14 +++++++ stubs/Psr/Cache/CacheItemPoolInterface.stub | 37 +++++++++++++++++++ .../Contracts/Cache/CacheInterface.stub | 2 +- .../Contracts/Cache/CallbackInterface.stub | 2 + .../Contracts/Cache/ItemInterface.stub | 4 ++ 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 stubs/Psr/Cache/CacheItemPoolInterface.stub diff --git a/extension.neon b/extension.neon index 1aba591e..1ae86dcf 100644 --- a/extension.neon +++ b/extension.neon @@ -13,6 +13,7 @@ parameters: consoleApplicationLoader: null stubFiles: - stubs/Psr/Cache/CacheItemInterface.stub + - stubs/Psr/Cache/CacheItemPoolInterface.stub - stubs/Symfony/Bundle/FrameworkBundle/KernelBrowser.stub - stubs/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.stub - stubs/Symfony/Bundle/FrameworkBundle/Test/TestContainer.stub diff --git a/stubs/Psr/Cache/CacheItemInterface.stub b/stubs/Psr/Cache/CacheItemInterface.stub index f595213d..a6ba70b6 100644 --- a/stubs/Psr/Cache/CacheItemInterface.stub +++ b/stubs/Psr/Cache/CacheItemInterface.stub @@ -2,6 +2,20 @@ namespace Psr\Cache; +/** + * @template TValue + */ interface CacheItemInterface { + /** + * @return TValue + */ + public function get(); + + /** + * @param TValue $value + * + * @return static + */ + public function set($value); } diff --git a/stubs/Psr/Cache/CacheItemPoolInterface.stub b/stubs/Psr/Cache/CacheItemPoolInterface.stub new file mode 100644 index 00000000..d00af456 --- /dev/null +++ b/stubs/Psr/Cache/CacheItemPoolInterface.stub @@ -0,0 +1,37 @@ + + */ + public function getItem($key); + + /** + * @param array $keys + * + * @return array>|\Traversable> + */ + public function getItems(array $keys = array()); + + /** + * @param CacheItemInterface $item + * + * @return bool + */ + public function save(CacheItemInterface $item); + + /** + * @param CacheItemInterface $item + * + * @return bool + */ + public function saveDeferred(CacheItemInterface $item); +} diff --git a/stubs/Symfony/Contracts/Cache/CacheInterface.stub b/stubs/Symfony/Contracts/Cache/CacheInterface.stub index f4cc208d..6d7a900b 100644 --- a/stubs/Symfony/Contracts/Cache/CacheInterface.stub +++ b/stubs/Symfony/Contracts/Cache/CacheInterface.stub @@ -7,7 +7,7 @@ interface CacheInterface /** * @template T * - * @param \Symfony\Contracts\Cache\CallbackInterface|callable(\Symfony\Contracts\Cache\ItemInterface, bool): T $callback + * @param \Symfony\Contracts\Cache\CallbackInterface|callable(\Symfony\Contracts\Cache\ItemInterface, bool): T $callback * @param array $metadata * @return T */ diff --git a/stubs/Symfony/Contracts/Cache/CallbackInterface.stub b/stubs/Symfony/Contracts/Cache/CallbackInterface.stub index 9b5a6e1a..3cc4e2c9 100644 --- a/stubs/Symfony/Contracts/Cache/CallbackInterface.stub +++ b/stubs/Symfony/Contracts/Cache/CallbackInterface.stub @@ -10,6 +10,8 @@ use Psr\Cache\CacheItemInterface; interface CallbackInterface { /** + * @param CacheItemInterface $item + * * @return T */ public function __invoke(CacheItemInterface $item, bool &$save); diff --git a/stubs/Symfony/Contracts/Cache/ItemInterface.stub b/stubs/Symfony/Contracts/Cache/ItemInterface.stub index cb3982bb..ca3a8a4d 100644 --- a/stubs/Symfony/Contracts/Cache/ItemInterface.stub +++ b/stubs/Symfony/Contracts/Cache/ItemInterface.stub @@ -4,6 +4,10 @@ namespace Symfony\Contracts\Cache; use Psr\Cache\CacheItemInterface; +/** + * @template TValue + * @extends CacheItemInterface + */ interface ItemInterface extends CacheItemInterface { }