2017-11-27 4 views
2

Ich versuche, meine Symfony Anwendung Leistungen zu optimieren, und ich folgte diese Beiträge:Symfony und Lehre Metadaten Cache

I "besorgt" bin über diese Zeilen:

doctrine: 
    orm: 
     entity_managers: 
      default: 
       metadata_cache_driver: apc 
       query_cache_driver: apc 
       result_cache_driver: apc 

Sind sie Safe zu verwenden oder muss ich mit ihnen nach der Bereitstellung vorsichtig umgehen? Ich lösche den Cache mit php app/console cache:clear --env=prod --no-debug, muss ich auch APC-Cache löschen?

Antwort

2

Ja, im Allgemeinen sollten Sie Ihren APC-Cache nach der Bereitstellung löschen. Aber es hängt davon ab, was Sie seit Ihrer letzten Bereitstellung geändert haben.

cache:clear wird den Doctrine-Cache nicht gelöscht. Es löscht nur den Cache-Verzeichnis (var/cache/{env} für Symfony 3+, app/cache für 2.8): FrameworkBundle/Command/CacheClearCommand.php

So sollten Sie den Cache nach der Bereitstellung löschen, wenn etwas (zum Beispiel Ihre Entitäten) seit dem letzten Einsatz hat sich geändert.

Wenn Sie manuell bereitstellen, führen Sie diese Befehle, wenn anwendbar:

bin/console doctrine:cache:clear-query --env=prod 
bin/console doctrine:cache:clear-result --env=prod 
bin/console doctrine:cache:clear-metadata --env=prod 

Wenn Sie es vorziehen besser als Nachsicht oder wenn Sie mit der Bereitstellung automatisch, alle von ihnen laufen.

Leider kann der APC-Cache mit CLI nicht gelöscht werden. Siehe this answer oder this question. Als Alternative können Sie restart your webserver.

+0

Ich benutze Symfony 2.8 und das Cache-Verzeichnis ist in der App, ist es das gleiche? Ich benutze den Deployer für die Bereitstellung meiner Symfony App, aber anscheinend nicht den Doku-Cache: https://github.com/deployphp/deployer/blob/master/recipe/symfony.php – StockBreak

+0

Meine Antwort wurde aktualisiert. 'app/cache' wurde vor Symfony 3.0 verwendet. Ich sehe, dass der Deployer den Doctrine-Cache nicht löscht. In [this issue] (https://github.com/deposyphp/deployer/issues/444) finden Sie Hintergrundinformationen. –

+0

Danke! Die letzten zwei Fragen: 1) Muss ich den '--flush' Parameter angeben? 2) Es gibt einen Kommentar in dem Beitrag, den Sie verlinkt haben: "Wenn Sie apc benutzen, können Sie den Cache nicht mit dem Befehl löschen", was bedeutet das? – StockBreak