如何在symfony2.8中设置或从缓存中获取值?

时间:2017-06-17 05:39:10

标签: symfony caching

在我的 service.yml

cache:
    class: Doctrine\Common\Cache\PhpFileCache
    arguments: [%kernel.cache_dir%] 

在我的控制器

$cache = $this->get('cache');

if ($cache->fetch($cache_key) != NULL) {
    // mycode
}

我的 SilencedError

  

1-include(\ app \ cache \ dev \ 30 \ 446f637472696e654e616d65737061636543616368654b65795b5d.doctrinecache.php):无法打开流:没有这样的文件或目录

1 个答案:

答案 0 :(得分:0)

您正在尝试获取条目而不检查它是否存在。在获取条目之前使用$cache->contains($cache_key)

PhpFileCache类扩展FileCache扩展CacheProvider时,您应检查类以查找可用于创建和检索缓存条目的函数:

/**
 * {@inheritdoc}
 */
public function fetch($id)
{
    ...
}

/**
 * {@inheritdoc}
 */
public function fetchMultiple(array $keys)
{
    ...
}

/**
 * {@inheritdoc}
 */
public function saveMultiple(array $keysAndValues, $lifetime = 0)
{
    ...
}

/**
 * {@inheritdoc}
 */
public function contains($id)
{
    ...
}

/**
 * {@inheritdoc}
 */
public function save($id, $data, $lifeTime = 0)
{
    ...
}