D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
modules
/
mfa
/
vendor
/
palepurple
/
rate-limit
/
src
/
Adapter
/
Filename :
Stash.php
back
Copy
<?php namespace PalePurple\RateLimit\Adapter; use PalePurple\RateLimit\Adapter; use Stash\Invalidation; /** * This could be changed to just require something implmenting PSR6 - i.e. require a \Cache\CacheItemPoolInterface - but * Stash seems to require the 'setInvalidationMethod()' to be called on items.... */ class Stash extends Adapter { /** * @var \Stash\Pool */ private $pool; public function __construct(\Stash\Pool $pool) { $this->pool = $pool; } public function get($key) { $item = $this->pool->getItem($key); $item->setInvalidationMethod(Invalidation::OLD); if ($item->isHit()) { return $item->get(); } return (float) 0; } public function set($key, $value, $ttl) { $item = $this->pool->getItem($key); $item->set($value); $item->expiresAfter($ttl); return $item->save(); } public function exists($key) { $item = $this->pool->getItem($key); $item->setInvalidationMethod(Invalidation::OLD); return $item->isHit(); } public function del($key) { return $this->pool->deleteItem($key); } }