Created
August 1, 2021 23:11
-
-
Save frosit/476e5797bdbb6bf75c97054454f764a4 to your computer and use it in GitHub Desktop.
Patch file that returns missing (deprecated) ArrayCache class, blocking composer install.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
lib/Doctrine/Common/Cache/ArrayCache.php | 115 +++++++++++++++++++++++ | |
1 file changed, 115 insertions(+) | |
create mode 100644 lib/Doctrine/Common/Cache/ArrayCache.php | |
diff --git a/lib/Doctrine/Common/Cache/ArrayCache.php b/lib/Doctrine/Common/Cache/ArrayCache.php | |
new file mode 100644 | |
index 0000000..eca43b8 | |
--- /dev/null | |
+++ b/lib/Doctrine/Common/Cache/ArrayCache.php | |
@@ -0,0 +1,115 @@ | |
+<?php | |
+ | |
+namespace Doctrine\Common\Cache; | |
+ | |
+use function time; | |
+ | |
+/** | |
+ * Array cache driver. | |
+ * | |
+ * @deprecated Deprecated without replacement in doctrine/cache 1.11. This class will be dropped in 2.0 | |
+ * | |
+ * @link www.doctrine-project.org | |
+ */ | |
+class ArrayCache extends CacheProvider | |
+{ | |
+ /** @psalm-var array<string, array{mixed, int|bool}>> $data each element being a tuple of [$data, $expiration], where the expiration is int|bool */ | |
+ private $data = []; | |
+ | |
+ /** @var int */ | |
+ private $hitsCount = 0; | |
+ | |
+ /** @var int */ | |
+ private $missesCount = 0; | |
+ | |
+ /** @var int */ | |
+ private $upTime; | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ public function __construct() | |
+ { | |
+ $this->upTime = time(); | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doFetch($id) | |
+ { | |
+ if (! $this->doContains($id)) { | |
+ $this->missesCount += 1; | |
+ | |
+ return false; | |
+ } | |
+ | |
+ $this->hitsCount += 1; | |
+ | |
+ return $this->data[$id][0]; | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doContains($id) | |
+ { | |
+ if (! isset($this->data[$id])) { | |
+ return false; | |
+ } | |
+ | |
+ $expiration = $this->data[$id][1]; | |
+ | |
+ if ($expiration && $expiration < time()) { | |
+ $this->doDelete($id); | |
+ | |
+ return false; | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doSave($id, $data, $lifeTime = 0) | |
+ { | |
+ $this->data[$id] = [$data, $lifeTime ? time() + $lifeTime : false]; | |
+ | |
+ return true; | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doDelete($id) | |
+ { | |
+ unset($this->data[$id]); | |
+ | |
+ return true; | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doFlush() | |
+ { | |
+ $this->data = []; | |
+ | |
+ return true; | |
+ } | |
+ | |
+ /** | |
+ * {@inheritdoc} | |
+ */ | |
+ protected function doGetStats() | |
+ { | |
+ return [ | |
+ Cache::STATS_HITS => $this->hitsCount, | |
+ Cache::STATS_MISSES => $this->missesCount, | |
+ Cache::STATS_UPTIME => $this->upTime, | |
+ Cache::STATS_MEMORY_USAGE => null, | |
+ Cache::STATS_MEMORY_AVAILABLE => null, | |
+ ]; | |
+ } | |
+} | |
-- | |
2.30.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment