I'm working an implementation of PHP-FIG's PSR-6 caching recommendation but I'm getting a fatal error that I'm not sure how to resolve.
Declaration of Whatever\CacheItemPoolInterface::save() must be compatible with Psr\Cache\CacheItemPoolInterface::save(Psr\Cache\CacheItemInterface $item)
I'm accepting the same parameters and returning the same values as the interface class.
Here's a stripped-down version of the code I'm working on.
My implementation class:
namespace Whatever;
class CacheItemPoolInterface implements \Psr\Cache\CacheItemPoolInterface {
... More methods and such up here...
public function save(CacheItemInterface $item) {
$key = $item->getKey();
$value = $item->get();
$expiration = $item->getExpiration();
if (cache_set($key, $value, $this->bin, $expiration)) {
return TRUE;
}
else {
return FALSE;
}
}
... Some more stuff down here too...
}
Here's the class I'm implementing:
<?php
namespace Psr\Cache;
interface CacheItemPoolInterface
{
/**
* Persists a cache item immediately.
*
* @param CacheItemInterface $item
* The cache item to save.
*
* @return bool
* True if the item was successfully persisted. False if there was an error.
*/
public function save(CacheItemInterface $item);
}
Any ideas what I'm doing wrong?