La anotación @cache facilita la definición del almacenamiento en caché HTTP:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
/**
* @Cache(expires="tomorrow")
*/
public function indexAction()
{
}
También puedes utilizar la anotación en una clase para definir el almacenamiento en caché para todos sus métodos:
/**
* @Cache(expires="tomorrow")
*/
class BlogController extends Controller
{
}
Cuando hay un conflicto entre la configuración de la clase y la configuración del método, esta última reemplaza a la anterior:
/**
* @Cache(expires="tomorrow")
*/
class BlogController extends Controller
{
/**
* @Cache(expires="+2 days")
*/
public function indexAction()
{
}
}
Aquí está una lista de los atributos aceptados y su encabezado HTTP equivalente:
Anotación | Método de respuesta |
---|---|
@Cache(expires="tomorrow") | $response->setExpires() |
@Cache(smaxage="15") | $response->setSharedMaxAge() |
@Cache(maxage="15") | $response->setMaxAge() |
@Cache(vary=["Cookie"]) | `$response->setVary() |
Nota
El atributo expires toma cualquier fecha válida entendida por la función strtotime() de PHP.