2011-08-25 17 views
33

¿Hay alguna manera de desactivar la función de almacenamiento en caché en Symfony2? Intenté encontrar la configuración en los archivos config * y parameters.ini y busqué mucho. Ok, encontré algunas soluciones, pero nada para la última versión (Symfony2).Symfony2 ¿desactivar el caché?

¿POR QUÉ? Porque quiero probar nuevas plantillas y funciones sin borrar la aplicación/caché * todo el tiempo.

+0

este concepto de caché todavía me confunde. no estoy seguro de si es posible. en realidad hay dos cachés, al menos, para el boostrapping (twig, config, routes) y otro para los componentes usados. No estoy seguro de si, dada la arquitectura de sf2 std distrib, la idea de desactivar cachés tiene sentido. : -/el código tendría que ser cambiado considerablemente, supongo, porque tendrías que traducir yml-configs, yml-routings y templates a php ... quizás sea más fácil convertirse en cache-independant si uno usa php para rutas, plantillas y configuraciones en primer lugar. – Raffael

+1

¿Qué tipo/nivel de caché desea deshabilitar?Para la caché de HTTP, la mejor visión general es probablemente [aquí] (http://symfony.com/doc/current/book/http_cache.html). Sin embargo, tenga en cuenta que no está activada por defecto de todos modos. ¿Podrías explicar con un poco más de detalle qué problema estás tratando de resolver? –

+1

Quiero probar las plantillas y la configuración sin borrar la/app/cache/* todo el tiempo. – NaN

Respuesta

66

Supongo que está utilizando el motor Twig, (el motor de plantillas predeterminado para Symfony2). Para deshabilitar la caché en rama, de modo que usted no tiene que mantener a borrar la memoria caché de este modo:

rm -rf app/cache/* 

Vaya a su archivo de configuración de aplicación (por DEFAULT se encuentra en ../app/config/config. yml desde su directorio raíz). Seleccionar los ajustes de configuración rama (menores ramita:) y cambie el valor de caché (que debe estar apuntando hacia el directorio de caché) para falsa así:

twig: 
    cache: false 

Si no ve ninguna caché entrada de configuración, simplemente agregue la línea de arriba.

También puede ser útil a la caja de la referencia de configuración para el paquete de la ramita: http://symfony.com/doc/2.0/reference/configuration/twig.html

Después de editar el archivo de config_dev.yml, ir a su terminal y ejecuta:

app/console cache:clear 
+0

Hola a todos, probé la solución provista y todo lo que obtengo ahora de twig es una página en blanco. Nunca tuve la opción de caché en mi archivo yml. Alguien tiene una idea .. ? – xeon

+2

Recomiendo inhabilitar la caché twig en 'app_dev.php' solamente. Funciona bien y se mantiene alejado de su configuración de producción. – PutzKipa

+1

¿Cómo se desactiva la memoria caché twig en app_dev.php? Toda la documentación dice que app_dev.php desactiva de manera predeterminada el caché de ramitas, pero no veo este comportamiento. – jhnlsn

8

Bien, con respecto a su aclaración, la solución es simplemente usar el entorno dev a través del controlador frontal web/app_dev.php. Entonces sf2 realiza un seguimiento de sus ajustes y no tiene que borrar la caché.

4

Editar 'config_dev.yml' y 'config.yml' y luego poner en tanto

twig: 
    cache: false 
3

Además de la respuesta aceptada, propongo editar su config_dev.yml de modo que todavía depure su plantilla twig. Para ello, agregue este código a su archivo config_dev.yml:

twig: 
    cache: false 
    debug: true 

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

Después de editar el archivo de config_dev.yml, vaya a su terminal y ejecutar:

app/console cache:clear 

De esta manera, se volverá a cargar sus configuraciones config_dev.yml: haga que su proyecto se ejecute con la nueva configuración.

Espero que esto ayude.

Cuestiones relacionadas