I have a application which is developed in PHP using the Symfony 2 framework. I have changed a HTML file, but the change is not reflecting when I refresh the page.
You can use the Symfony console to clear cache
./bin/console cache:clear
I had a similar problem, but deleting the cache-folder did not have any impact on my template and I don't know why. What seems to solve my problem now is the following code in my config_dev.yml:
twig:
cache: false
Maybe this is also a solution for you, so that you don't need to use the command all the time.
References:
TwigBundle Configuration
Twig Environment Options
If you are using opcache/other similar caching, deleting twig's cache folder won't refresh templates as twig cache consist of only .php files. You need to delete twig's cache folder + execute php file which contains:
opcache_reset();
you can add a function like this :
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);
}
When creating a new Twig_Environment instance, you can pass an array of options as the constructor second argument. One of them is auto_reload
. When developing with Twig, it's useful to recompile the template whenever the source code changes. If you don't provide a value for the auto_reload
option, it will be determined automatically based on the debug
value.
Set auto_reload
to be true
:
$twig = new Twig_Environment($loader, array('auto_reload' => true));
Twig's documentation for developers: http://twig.sensiolabs.org/doc/api.html#environment-options
The most simple way, type the command :
rm -rf app/cache/*
The point is: all files in app/cache/
can be removed freely, they are regenerated when needed.
If you really want to clear only twig cache :
rm -rf app/cache/<environment>/twig
Replace <environment>
by dev
, prod
, or test
according to your requirements.