在Codeigniter中,Twig项目总是刷新缓存

时间:2016-07-28 06:04:53

标签: twig codeigniter-3

在Codeigniter 3.0.6中,Twig 1.24.0项目如果在twig代码中我想清除任何页面重新加载的所有缓存。 在某些情况下,在我看来,在我修改了一些twig并通过CTRL + R重新加载页面后,新的更改未应用于此页面。 在我手动删除twig文件后,它可以正常工作。

包含twig以作为库

进行投影
https://github.com/kenjis/codeigniter-ss-twig:
        $twig_config = array();
        $this->load->library('twig', $twig_config);
        $twig_Environment = $this->twig->getTwig();

$ this-> config填充:

$this->config::Array
(
    [paths] => Array
        (
            [0] => /mnt/diskD_Work/wwwroot/tb/application/views/
        )

    [cache] => /mnt/diskD_Work/wwwroot/tb/application/cache/twig
)

在$ twig_Environment对象输出中:

$twig_Environment::Twig_Environment Object
(
    [charset:protected] => UTF-8
    [loader:protected] => Twig_Loader_Filesystem Object
        (
            [paths:protected] => Array
                (
                    [__main__] => Array
                        (
                            [0] => /mnt/diskD_Work/wwwroot/tb/application/views
                        )

                )

            [cache:protected] => Array
                (
                )

            [errorCache:protected] => Array
                (
                )

        )

    [debug:protected] => 
    [autoReload:protected] => 
    [cache:protected] => Twig_Cache_Filesystem Object
        (
            [directory:Twig_Cache_Filesystem:private] => /mnt/diskD_Work/wwwroot/tb/application/cache/twig/
            [options:Twig_Cache_Filesystem:private] => 0
        )

在codeigniter-ss-twig对象中,我看到:

$debug= true; // for development envierement of CI project.
$twig = new \Twig_Environment($this->loader, [
  'cache'      => $this->config['cache'],
  'debug'      => $debug,
  'strict_variables'      => $debug,
  'autoescape' => TRUE,
]);

如果我在重新加载页面时还有更多选项/调整来更新缓存吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以启用auto_reload,根据您的代码启用此选项:

$debug= true; // for development envierement of CI project.
$twig = new \Twig_Environment($this->loader, [
  'cache'                 => $this->config['cache'],
  'debug'                 => $debug,
  'strict_variables'      => $debug,
  'autoescape'            => TRUE,
  'auto_reload'           => TRUE,
]);

奇怪的是auto_reload未激活,因为默认auto_reload取决于选项debug,如果您不手动设置

  

使用Twig进行开发时,重新编译模板很有用   每当源代码发生变化时。如果你没有提供值   auto_reload选项,它将根据自动确定   调试值。