Caution: You are browsing the legacy symfony 1.x part of this website.
SymfonyWorld Online 2020
100% online
30+ talks + workshops
Live + Replay watch talks later

Il file di configurazione cache.yml

1.4
Symfony version
1.2
Language

Il file di configurazione cache.yml descrive la configurazione della cache per il livello della vista. Questo file di configurazione è attivo solo se l'impostazione cache è abilitata in settings.yml.

tip

La configurazione della classe usata per la cache e le sue configurazioni associate sono spiegate nelle sezioni view_cache_manager e view_cache del file di configurazione factories.yml.

Quando un'applicazione viene creata, symfony genera un file predefinito cache.yml nella cartella dell'applicazione config/, che descrive la cache per l'intera applicazione (sotto la chiave default). Nella modalità predefinita, la cache è globalmente assegnata a false:

default:
  enabled:     false
  with_layout: false
  lifetime:    86400

tip

Dal momento che l'impostazione enabled è assegnata a false nella modalità predefinita, è necessario abilitare la cache selettivamente. Si può anche lavorare in questo altro modo: abilitare la cache globalmente, dopodiché disabilitarla su pagine specifiche che non possono essere messe in cache. L'approccio migliore dovrebbe dipendere da quale dei due metodi necessita di meno lavoro per l'applicazione.

Come discusso in sede di introduzione, il file cache.yml trae benefici dal meccanismo di configurazione a cascata, e può includere costanti.

note

Il file di configurazione cache.yml è memorizzato nella cache come file PHP; il processo è gestito automaticamente dalla classe sfCacheConfigHandler.

La configurazione predefinita dell'applicazione può essere sovrascritta per un modulo, con la creazione di un file cache.yml nella cartella config/ del modulo. Le chiavi principali sono nomi di azioni senza il prefisso execute (ad esempio index per il metodo executeIndex). Anche un partial o un componente possono essere messi in cache, utilizzando il nome con un prefisso di sottolineatura (_).

Per determinare se un'azione è messa in cache o no, symfony cerca le informazioni nel seguente ordine:

  • una configurazione per una specifica azione, partial o componente nel file di configurazione del modulo, se esiste;

  • una configurazione per un intero modulo nel file di configurazione del modulo, se esiste (sotto la chiave all);

  • la configurazione predefinita dell'applicazione (sotto la chiave default).

caution

Una richiesta in arrivo con parametri GET nella stringa di richiesta o inviata con il metodo POST, PUT o DELETE non sarà mai messa in cache da symfony, indipendentemente dalla configurazione.

enabled

Predefinito: false

L'impostazione enabled abilita o disabilita la cache per l'ambito corrente.

with_layout

Predefinito: false

L'impostazione with_layout determina se la cache deve essere per l'intera pagina (true), o solo per l'azione (false).

note

L'opzione with_layout non è presa in considerazione per la cache di partial e componenti, in quanto non possono essere decorati da un layout.

lifetime

Predefinito: 86400

L'impostazione lifetime definisce il ciclo di vita lato server della cache, in secondi (86400 secondi equivalgono a un giorno).

client_lifetime

Predefinito: Stesso valore di lifetime

L'impostazione client_lifetime definisce il ciclo di vita lato client della cache, in secondi.

Questa impostazione è usata per assegnare automaticamente l'header Expires e la variabile di controllo cache max-cache, a meno che gli header Last-Modified o Expires non siano già stati assegnati.

È possibile disabilitare la cache lato client assegnando il valore 0.

contextual

Predefinito: false

L'impostazione contextual determina se la cache dipende dal corrente contesto di pagina o no. L'impostazione quindi è significativa solo quando usata per partial e componenti.

Quando l'output di un partial è diverso in base al template in cui è incluso, il partial è detto contestuale e l'impostazione contextual deve essere assegnata a true. Il valore predefinito è assegnato a false, il che significa che l'output per partial e componenti è sempre lo stesso, dovunque siano inclusi.

note

La cache rimarrà ovviamente diversa per un diverso insieme di parametri.