在Symfony2中如何重装树枝缓存(How reload twig cache in symfon

2019-09-02 01:01发布

我是新来的PHP,我这是在PHP和Symfony2的框架开发的应用程序。 我已经改变HTML文件,当我刷新页面的变化没有反映。

01. I restarted the server No luck.

02. I tried to remove the twig folder from /protected/cache/ page it self not loading.

请告知,我使用Tomcat服务器来部署。

注:我没有做服务器配置Symfony2的命令行。

Answer 1:

最简单的方式,键入命令:

rm -rf app/cache/*

问题的关键是:在所有文件app/cache/可自由取下,在需要的时候它们再生。

如果你真的想只清除树枝缓存:

rm -rf app/cache/<environment>/twig

替换<environment>通过devprod ,或test根据您的要求。



Answer 2:

当创建一个新Twig_Environment例如,您可以通过选项作为构造第二个参数数组。 其中之一是auto_reload 。 当枝条发展,是非常有用的重新编译模板每当更改源代码。 如果你没有提供的值auto_reload选项,它会自动确定基于的debug值。

设置auto_reloadtrue

$twig = new Twig_Environment($loader, array('auto_reload' => true));

嫩枝的文档开发商: http://twig.sensiolabs.org/doc/api.html#environment-options



Answer 3:

我有一个类似的问题,但删除缓存文件夹并没有对我的模板的任何影响,我不知道为什么。 有什么事解决我的问题,现在是我config_dev.yml下面的代码:

twig:
    cache: false

也许这也是你的解决方案,让您无需使用命令所有的时间。

参考文献:

TwigBundle配置

嫩枝环境选项



Answer 4:

如果您正在使用opcache /其他类似的高速缓存,删除树枝的缓存文件夹中缓存枝包括只有.php文件不会刷新模板。 您需要删除树枝的缓存文件夹+执行PHP文件,其中包含:

opcache_reset();



Answer 5:

你所要做的位于Web文件夹app.php文件中的一些变化。

更改:

$kernel = new AppKernel('prod', false);    

至:

$kernel = new AppKernel('prod', true);

如果你想清除缓存。



Answer 6:

如果您正在使用OPcache确保注释掉opcache.validate_timestamps=0的开发环境。



Answer 7:

您可以添加这样的功能:

public function renderView($view, array $parameters = array())
{
    $loader = new \Twig_Loader_Filesystem($this->container->getParameter("template_path"));
    $twig = new \Twig_Environment($loader, array('auto_reload' => true,
        'cache' => false
    ));

    /////////////////////add a translate filter/////////////////////// 
    $getTextdomain = new \Twig_SimpleFilter('trans',function ($string){
        return $this->container->get('translator')->trans($string);
    });

    $twig->addFilter($getTextdomain);
    //////////////////////////////////////////////////////////////////

    ///////////////////////////Add an extension twig//////////////////
    $twig->addExtension(new Extension());
    //////////////////////////////////////////////////////////////////

    return $twig->render($view, $parameters);
}


文章来源: How reload twig cache in symfony2
标签: php symfony twig