Symfony2:运行代码以在缓存清除后创建目录

时间:2017-02-28 14:54:42

标签: php symfony

我在$ SFROOT / var / cache / $ ENVIRONMENT / templates处使用twig模板目录来存储生成的树枝模板。

在twig配置中,我添加了此目录,因此找到了模板。

清除缓存时,不会自动创建目录

所有控制台命令(包括编写器安装后缓存清除挂钩)都会失败,因为twig要求该目录存在,但在缓存清除之后它不会。

如何确保在清除缓存后创建目录?

我正在寻找某种依赖注入,使用mkdir命令为post-cache-clear添加一个钩子(谷歌没有返回任何内容),但我无法找到如何实现这一点

1 个答案:

答案 0 :(得分:1)

您可以创建Custom Cache Warmer

// src/Acme/MainBundle/Cache/MyCustomWarmer.php
namespace AppBundle\Cache;

use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;

class MyCustomWarmer implements CacheWarmerInterface
{
    public function warmUp($cacheDir)
    {
        // ... do some sort of operations to "warm" your cache
    }

    public function isOptional()
    {
        return false;
    }
}

自定义服务:

services:
    app.warmer.my_custom_warmer:
        class: AppBundle\Cache\MyCustomWarmer
        tags:
            - { name: kernel.cache_warmer, priority: 0 }