108 lines
3.3 KiB
PHP
108 lines
3.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Symfony\Component\HttpKernel\Attribute;
|
|
|
|
/**
|
|
* Describes the default HTTP cache headers on controllers.
|
|
* Headers defined in the Cache attribute are ignored if they are already set
|
|
* by the controller.
|
|
*
|
|
* @see https://symfony.com/doc/current/http_cache.html#making-your-responses-http-cacheable
|
|
*
|
|
* @author Fabien Potencier <fabien@symfony.com>
|
|
*/
|
|
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION)]
|
|
final class Cache
|
|
{
|
|
public function __construct(
|
|
/**
|
|
* The expiration date as a valid date for the strtotime() function.
|
|
*/
|
|
public ?string $expires = null,
|
|
|
|
/**
|
|
* The number of seconds that the response is considered fresh by a private
|
|
* cache like a web browser.
|
|
*/
|
|
public int|string|null $maxage = null,
|
|
|
|
/**
|
|
* The number of seconds that the response is considered fresh by a public
|
|
* cache like a reverse proxy cache.
|
|
*/
|
|
public int|string|null $smaxage = null,
|
|
|
|
/**
|
|
* If true, the contents will be stored in a public cache and served to all
|
|
* the next requests.
|
|
*/
|
|
public ?bool $public = null,
|
|
|
|
/**
|
|
* If true, the response is not served stale by a cache in any circumstance
|
|
* without first revalidating with the origin.
|
|
*/
|
|
public bool $mustRevalidate = false,
|
|
|
|
/**
|
|
* Set "Vary" header.
|
|
*
|
|
* Example:
|
|
* ['Accept-Encoding', 'User-Agent']
|
|
*
|
|
* @see https://symfony.com/doc/current/http_cache/cache_vary.html
|
|
*
|
|
* @var string[]
|
|
*/
|
|
public array $vary = [],
|
|
|
|
/**
|
|
* An expression to compute the Last-Modified HTTP header.
|
|
*
|
|
* The expression is evaluated by the ExpressionLanguage component, it
|
|
* receives all the request attributes and the resolved controller arguments.
|
|
*
|
|
* The result of the expression must be a DateTimeInterface.
|
|
*/
|
|
public ?string $lastModified = null,
|
|
|
|
/**
|
|
* An expression to compute the ETag HTTP header.
|
|
*
|
|
* The expression is evaluated by the ExpressionLanguage component, it
|
|
* receives all the request attributes and the resolved controller arguments.
|
|
*
|
|
* The result must be a string that will be hashed.
|
|
*/
|
|
public ?string $etag = null,
|
|
|
|
/**
|
|
* max-stale Cache-Control header
|
|
* It can be expressed in seconds or with a relative time format (1 day, 2 weeks, ...).
|
|
*/
|
|
public int|string|null $maxStale = null,
|
|
|
|
/**
|
|
* stale-while-revalidate Cache-Control header
|
|
* It can be expressed in seconds or with a relative time format (1 day, 2 weeks, ...).
|
|
*/
|
|
public int|string|null $staleWhileRevalidate = null,
|
|
|
|
/**
|
|
* stale-if-error Cache-Control header
|
|
* It can be expressed in seconds or with a relative time format (1 day, 2 weeks, ...).
|
|
*/
|
|
public int|string|null $staleIfError = null,
|
|
) {
|
|
}
|
|
}
|