wake-up-neo.com

Wie man Zwischenspeicher in symfony2 neu lädt

Ich bin neu in PHP, ich habe eine Anwendung, die in PHP und im symfony2-Framework entwickelt wurde.

01. I restarted the server No luck.

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

Bitte beraten Sie, ich verwende den Tomcat-Server zum Bereitstellen.

Hinweis :  Ich habe keine symfony2-Befehlszeile auf dem Server konfiguriert.

35
Azhar

Der einfachste Weg, den Befehl einzugeben:

rm -rf app/cache/*

Der Punkt ist: Alle Dateien in app/cache/ können frei entfernt werden, sie werden bei Bedarf regeneriert.

Wenn Sie wirklich nur den Zweigcache löschen möchten:

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

Ersetzen Sie <environment> durch dev, prod oder test entsprechend Ihren Anforderungen.

39
Alain Tiemblo

Beim Erstellen einer neuen Instanz von Twig_Environment können Sie ein Array von Optionen als zweites Argument des Konstruktors übergeben. Eines davon ist auto_reload. Beim Entwickeln mit Twig ist es hilfreich, die Vorlage immer dann neu zu kompilieren, wenn sich der Quellcode ändert. Wenn Sie keinen Wert für die auto_reload-Option angeben, wird dieser automatisch anhand des debug-Werts bestimmt.

Stellen Sie auto_reload als true ein:

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

Twigs Dokumentation für Entwickler: http://twig.sensiolabs.org/doc/api.html#environment-options

36
Link

Ich hatte ein ähnliches Problem, aber das Löschen des Cache-Ordners hatte keine Auswirkungen auf meine Vorlage und ich weiß nicht warum. Was mein Problem jetzt zu lösen scheint, ist der folgende Code in meiner config_dev.yml:

twig:
    cache: false

Vielleicht ist dies auch eine Lösung für Sie, so dass Sie den Befehl nicht ständig verwenden müssen.

Verweise:

TwigBundle-Konfiguration

Twig-Umgebungsoptionen

12
Manuel

Wenn Sie Opcache/ähnliches Caching verwenden, werden beim Löschen des Cache-Ordners von twig keine Vorlagen aktualisiert, da der Twig-Cache nur aus .php-Dateien besteht .. _.

opcache_reset ();

3
j4r3k

Sie müssen einige Änderungen an der Datei app.php im Webordner vornehmen.

Veränderung:

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

zu:

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

und löschen Sie den Cache, wenn Sie möchten.

Wenn Sie OPcache verwenden, müssen Sie unbedingt opcache.validate_timestamps=0 in der dev-Umgebung auskommentieren.

0
Nkoyan

sie können eine Funktion wie folgt hinzufügen:

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
Themer