Как перезагрузить кэш веток в symfony2


Я новичок в 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, настроенной на сервере.

Author: Azhar, 2013-05-05

7 answers

Самый простой способ, введите команду:

rm -rf app/cache/*

Суть в том, что все файлы в app/cache/ могут быть свободно удалены, они восстанавливаются при необходимости.

Если вы действительно хотите очистить только кэш веток:

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

Заменить <environment> на dev, prod, или test в соответствии с вашими требованиями.

 38
Author: Alain Tiemblo, 2013-05-05 20:26:08

При создании нового экземпляра 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

 30
Author: Link, 2013-10-23 06:07:25

У меня была аналогичная проблема, но удаление папки кэша не оказало никакого влияния на мой шаблон, и я не знаю, почему. Что, кажется, решает мою проблему сейчас, так это следующий код в моем файле config_dev.yml:

twig:
    cache: false

Возможно, это также решение для вас, так что вам не нужно использовать команду все время.

Ссылки:

Конфигурация TwigBundle

Параметры среды Ветки

 12
Author: Manuel, 2014-07-08 09:17:30

Если вы используете opcache/другое подобное кэширование, удаление папки кэша twig не приведет к обновлению шаблонов, так как кэш twig состоит только из файлов.php. Вам нужно удалить папку кэша twig + выполнить php-файл, который содержит:

Opcache_reset();

 3
Author: j4r3k, 2016-05-19 08:38:06

Вам нужно внести некоторые изменения в app.php файл, расположенный в веб-папке.

Изменение:

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

Кому:

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

И очистите кэш, если хотите.

 2
Author: Abdelghafour Ennahid, 2017-11-28 15:33:59

Вы можете добавить такую функцию:

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);
}
 0
Author: Themer, 2018-01-30 16:48:33

Если вы используете OPcache, обязательно закомментируйте opcache.validate_timestamps=0 в среде разработки.

 0
Author: Nkoyan, 2018-09-15 22:34:42