Ich muss meine löschen Lehre zwischenspeichern Symfonie.
Es muss eine Möglichkeit in der Befehlszeile für geben leeren Sie den Cache.
Oder wo soll ich die zum Cache gehörenden Dateien finden und löschen?
Morteza Kavakebi
Ich muss meine löschen Lehre zwischenspeichern Symfonie.
Es muss eine Möglichkeit in der Befehlszeile für geben leeren Sie den Cache.
Oder wo soll ich die zum Cache gehörenden Dateien finden und löschen?
amitchhajer
Für Symfony 3+:
php bin/console
listet alle Befehle auf, die folgenden sind für den Cache relevant:
php bin/console doctrine:cache:clear-metadata
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
Vor Symfony 3:
app/console
wird auflisten, wie Sie es tun können
app/console doctrine:cache:clear-metadata
app/console doctrine:cache:clear-query
app/console doctrine:cache:clear-result
Übrigens, wenn Sie beispielsweise Mongodb verwenden, können Sie „app/console Doktrin:mongodb:cache:clear-metadata“ oder einfach „app/console Doktrin“ ausführen und Sie werden alle verfügbaren Optionen sehen
– Gigala
16. April 13 um 10:55 Uhr
Beachten Sie, dass Sie immer verwenden können app/console list
um alle Befehle anzuzeigen oder app/console list doctrine
um nur Befehle im Namensraum „Lehre“ anzuzeigen
– Kaponika
7. Mai ’14 um 13:30 Uhr
Ich habe es versucht doctrine:cache:clear-result
im Produktumfeld. Es funktioniert nicht. Ich habe es auch versucht bin/doctrine orm:clear-cache:result
. Es funktioniert auch nicht. Ich benutze memcache
.
– Sithu
6. Oktober 15 um 2:39 Uhr
Antho
Wenn Sie dies in Ihrem Code tun möchten (von Dokumentation der Lehre) :
Wenn Sie einfach alle Cache-Einträge löschen möchten, können Sie dies mit der Methode deleteAll() tun.
$cacheDriver = new DoctrineCommonCacheArrayCache(); $deleted = $cacheDriver->deleteAll();
Was ist der Unterschied zum Cache-Flushing?
– Tschechisch
30. Juli 16 um 19:30 Uhr
Dieser Code erstellt einen neuen Cache-Treiber. Es sollte das aktuelle QueryCacheProfile oder die Implementierung des Ergebniscaches aus der Konfiguration verwenden. Es wird den Cache in Ihrer Anwendung nicht auf magische Weise löschen, wenn Sie z. B. Redis oder Memcached verwenden.
– Kafoso
13. August 18 um 14:06 Uhr
Ich dachte, ich würde verrückt mit dem Caching von Doktrinergebnissen – am Ende musste ich memcached neu starten.
Oli
Falls Sie APC verwenden, können Sie auch einfach den Code aufrufen
<?php
$deleted = apc_clear_cache() && apc_clear_cache('user');
in einer PHP-Seite auf demselben Server. Dies ist, was die Methode deleteAll () in Anthos Antwort tut, aber Sie sind nicht von den Doctrine-Klassen abhängig. Übrigens: Der komplette Cache wird geleert – nur für den Fall, dass Sie ihn für Nicht-Doctrine-Zeug verwenden.
Ich weiß, dass der Titel dieses Beitrags Symfony 2 lautet, aber für diejenigen unter Ihnen, die von Google kommen, wenn Sie Symfony 3+ haben, wird es sein:
bin/console
Im Gegensatz zu:
app/console
Koronos
Vielleicht ist es ein bisschen spät dafür, aber in meinem Fall hat Doktrin die Proxy-Klassen in der Produktion nicht generiert, dafür ändere ich die auto_generate_proxy_classes
zu wahr:
#symfony2&3 app/config/config.yml
#symfony4 config/packages/doctrine.yaml (by default true since 4.2)
doctrine:
orm:
auto_generate_proxy_classes: true #"%kernel.debug%"
.
rm -rf app/cache/*
hat nicht geholfen?– Vitalii Zurian
6. August 12 um 10:25 Uhr
hilft die Antwort? Wenn nein, versuchen Sie, den gesamten Cache mit app/console cache:clear zu löschen
– amitchhajer
6. August 12 um 14:14 Uhr
@thecatontheflat – Beachten Sie, dass der Doktrin-Cache häufig in apc und nicht im Dateisystem gespeichert wird, sodass das Entfernen der Cache-Dateien nicht hilfreich wäre.
– Kaponika
7. Mai 14 um 13:32 Uhr
@amitchhajer – beachten Sie, dass der General
app/console cache:clear
ist nur für den Symfony (App) Cache. Ich glaube nicht, dass es die Doktrin-Cache(s) löscht.– Kaponika
7. Mai 14 um 13:33 Uhr