我正在实施PHP-FIG的PSR-6缓存建议,但我发现致命错误,我不确定如何解决。
Whatever \ CacheItemPoolInterface :: save()声明必须与Psr \ Cache \ CacheItemPoolInterface :: save(Psr \ Cache \ CacheItemInterface $ item)兼容
我接受相同的参数并返回与接口类相同的值。
这是我正在处理的代码的简化版本。
我的实施课程:
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...
}
这是我实施的课程:
<?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);
}
任何想法我做错了什么?