2011-08-25 10 views
33

Czy istnieje sposób wyłączenia funkcji buforowania w Symfony2? Próbowałem znaleźć ustawienie w plikach config * i parameters.ini, a ja dużo szukałem. Ok, znalazłem kilka rozwiązań, ale nic dla najnowszej wersji (Symfony2).Symfony2 wyłączyć pamięć podręczną?

DLACZEGO? Ponieważ chcę testować nowe szablony i funkcje bez ciągłego czyszczenia aplikacji/pamięci podręcznej *.

+0

ta koncepcja cacheingu wciąż mnie myli. nie jestem pewien, czy to możliwe. w rzeczywistości są dwie pamięci podręczne - przynajmniej - do przerzucania (twig, config, routes) i inne do używanych komponentów. nie jestem pewien, czy biorąc pod uwagę architekturę dystrybucji sf2 std, idea wyłączania pamięci podręcznych ma sens. : -/kod musiałby być znacznie zmieniony, jak sądzę, ponieważ musiałbyś przetłumaczyć yml-configs, yml-routings i templates na php ... być może łatwiej byłoby stać się niezależnym od pamięci podręcznej, jeśli używasz php do tras, szablony i konfiguracje w pierwszej kolejności. – Raffael

+1

Jaki rodzaj/poziom pamięci podręcznej chcesz wyłączyć?W przypadku buforowania HTTP najlepszy przegląd to prawdopodobnie [tutaj] (http://symfony.com/doc/current/book/http_cache.html) - zauważ, że mimo to nie jest on domyślnie włączony. Czy możesz wyjaśnić nieco bardziej szczegółowo, jaki problem próbujesz rozwiązać? –

+1

Chcę przetestować szablony i konfigurację bez usuwania całej aplikacji/app/cache/*. – NaN

Odpowiedz

66

Zakładam, że używasz silnika Twig, (domyślny silnik szablonów dla Symfony2). Aby wyłączyć buforowanie w gałązki, tak że nie trzeba trzymać wyczyszczenie pamięci podręcznej tak:

rm -rf app/cache/* 

Przejdź do pliku konfiguracyjnego aplikacji (przez defualt będą zlokalizowane w ../app/config/config. yml z twojego katalogu głównego). Przewiń do ustawień konfiguracyjnych gałązka (poniżej gałązka:) i zmienić wartość cache (który powinien być skierowany do katalogu cache) do fałszywego tak:

twig: 
    cache: false 

Jeśli nie widać żadnych cache wpis konfiguracji, po prostu dodaj powyższą linię.

mogą być również pomocne do kasy odniesienie Konfigurowanie pakietu Twig: http://symfony.com/doc/2.0/reference/configuration/twig.html

Po edycji pliku config_dev.yml, przejdź do terminala i uruchom:

app/console cache:clear 
+0

Cześć Wszystko, próbowałem dostarczonego rozwiązania i wszystko, co dostaję teraz z gałązki jest pustą stroną. nigdy nie miałem opcji pamięci podręcznej w moim pliku yml. Ktoś ma pomysł ...? – xeon

+2

Polecam wyłączanie pamięci podręcznej gałązek tylko w 'app_dev.php'. Działa dobrze i pozostaje z dala od konfiguracji produkcyjnej. – PutzKipa

+1

Jak wyłączyć pamięć podręczną twig w app_dev.php? Cała dokumentacja mówi, że app_dev.php domyślnie wyłącza pamięć podręczną twig, ale nie widzę tego zachowania. – jhnlsn

8

W porządku, jeśli chodzi o wyjaśnienia, rozwiązaniem jest po prostu użycie środowiska programistycznego za pośrednictwem frontowego kontrolera web/app_dev.php. Następnie sf2 śledzi twoje korekty i nie musisz wyczyścić pamięci podręcznej.

4

Edit 'config_dev.yml' i 'config.yml', a następnie umieścić w obu

twig: 
    cache: false 
3

Oprócz zaakceptowanej odpowiedzi, proponuję edytować plik config_dev.yml w taki sposób, aby nadal debugował szablon twig. Aby to zrobić, należy dodać ten kod do pliku config_dev.yml:

twig: 
    cache: false 
    debug: true 

services: 
    twig.extension.debug: 
     class: Twig_Extension_Debug 
     tags: 
       - { name: 'twig.extension' } 

Po edycji pliku config_dev.yml, przejdź do terminala i uruchom:

app/console cache:clear 

Dzięki temu można przeładować twoje ustawienia config_dev.yml - uruchom twój projekt z nową konfiguracją.

Mam nadzieję, że to pomoże.