11 个月前

页面代码块的缓存

摘要:TEEBB在前台页面的twig模板中添加了teebb_core全局对象,这个对象可以对twig变量进行缓存。 参看代码: // \Teebb\CoreBundle\Twig\GlobalVariables /** * 用于页面部分数据缓存 *...

TEEBB在前台页面的twig模板中添加了teebb_core全局对象,这个对象可以对twig变量进行缓存。

参看代码:

// \Teebb\CoreBundle\Twig\GlobalVariables
    
/**
 * 用于页面部分数据缓存
 * @param string $cacheKey
 * @param mixed $data
 * @return mixed
 */
public function getCache(string $cacheKey, $data = null)
{
    return $this->cacheAdapter->get($cacheKey,
        function (ItemInterface $item) use ($data) {
            $item->expiresAfter($this->expireAfter);
            return $data;
        });
}

/**
 * @param string $cacheKey
 * @return bool
 * @throws InvalidArgumentException
 */
public function hasCache(string $cacheKey): bool
{
    return $this->cacheAdapter->hasItem($cacheKey);
}

在前台Twig模板中这样调用:

{% if teebb_core.hasCache('main_nav') %}
    {% set main_nav = teebb_core.cache('main_nav') %}
{% else %}
    {% set mainNavHtml = knp_menu_render('main_nav', {template: 'menu/main_nav.html.twig'}) %}
    {% set main_nav = teebb_core.cache('main_nav', mainNavHtml) %}
{% endif %}

//在页面中合适的位置显示main_nav
{{ main_nav|raw }}

 

缓存的过期时间在config/packages/teebb_core.yaml文件中进行修改。默认86400秒(24小时)。

参看文档: TEEBB的其他设置

更多文章

使用twig全局变量获取系统设置

2020-12-29

TEEBB在前台页面的twig模板中添加了teebb_core全局对象,这个对象可以获取全局系统设置,可将获取到的设置信息存入缓存。 参考代码: // \Teebb\CoreBundle\Twig\GlobalVariables /** * 使用此方法获取T...

前台页面搜索框区块(Block)

2020-12-29

参考:TEEBB.com动态列表页面右侧搜索框  ,该框使用了搜索框区块(Block)  

某分类下的内容列表区块(Block)

2020-12-29

如果您的内容类型引用了分类字段,想要单独显示某分类的内容列表,使用如下区块(block): {{ sonata_block_render({type:'teebb.core.block.contents_in_taxonomy'}, { taxonomy_sl...

联系我们