php 如何在Symfony 2中重新加载Twig缓存

lf3rwulv  于 2023-01-08  发布在  PHP
关注(0)|答案(8)|浏览(177)

我有一个使用Symfony 2框架在PHP中开发的应用程序。我更改了一个HTML文件,但当我刷新页面时,更改没有反映出来。
1.我重新启动了服务器。没成功。
1.我试图从/protected/cache/页面本身删除Twig文件夹。这没有加载。
如何重新加载Twig缓存?
注:

  • 我正在使用tomcat服务器进行部署。
  • 我没有在服务器上配置Symfony 2命令行。
  • 我是PHP新手。
b1zrtrql

b1zrtrql1#

最简单的方法是键入以下命令:

rm -rf app/cache/*

重点是:app/cache/中的所有文件可以自由删除,需要时重新生成。
如果确实要仅清除细枝缓存:

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

根据需要将<environment>替换为devprodtest

58wvjzkj

58wvjzkj2#

当创建一个新的Twig_Environment示例时,你可以传递一个选项数组作为构造函数的第二个参数。其中之一是auto_reload。当使用Twig开发时,每当源代码发生变化时,重新编译模板是很有用的。如果你没有为auto_reload选项提供值,它将根据debug值自动确定。
auto_reload设置为true

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

面向开发人员的Twig文档:http://twig.sensiolabs.org/doc/api.html#environment-options

2jcobegt

2jcobegt3#

我也遇到过类似的问题,但删除缓存文件夹对我的模板没有任何影响,我不知道为什么。现在似乎解决我的问题的是我的config_dev. yml中的以下代码:

twig:
    cache: false

也许这也是一个适合您的解决方案,这样您就不需要一直使用该命令。
参考文献:
TwigBundle Configuration
细枝环境选项

dly7yett

dly7yett4#

你必须在位于web文件夹中的app.php文件中做一些更改。
变更:

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

致:

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

并根据需要清除缓存。

bvhaajcl

bvhaajcl5#

如果您使用opcache/其他类似的缓存,删除twig的缓存文件夹不会刷新模板,因为twig缓存只包含.php文件。您需要删除twig的缓存文件夹+执行php文件,其中包含:
操作缓存重置();

z2acfund

z2acfund6#

您可以使用Symfony控制台清除缓存./bin/console cache:clear

cotxawn7

cotxawn77#

你可以像这样添加一个函数:

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);
}
jfgube3f

jfgube3f8#

如果您正在使用OPcache,请确保在开发环境中注解掉opcache.validate_timestamps=0

相关问题