-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[HttpKernel] Make #[Cache] respect all explicit cache directives set in controller
#62488
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HttpKernel] Make #[Cache] respect all explicit cache directives set in controller
#62488
Conversation
509ac93 to
28ddacc
Compare
#[Cache] respect all explicit cache directives set in contr…
|
I would consider it as a new feature, and so it should target the 8.1 branch. |
I thought it was worth fixing in 7.4, but if you want to keep it for 8.1, why not. @nicolas-grekas, what do you think? |
#[Cache] respect all explicit cache directives set in contr…#[Cache] respect all explicit cache directives set in controller
… (ayyoub-afwallah) This PR was submitted for the 7.4 branch but it was merged into the 6.4 branch instead. Discussion ---------- [Cache] Clarify `#[Cache]` attribute precedence behavior Adds tip explaining that #[Cache] attribute doesn't override manually set headers. Related to [#62488](symfony/symfony#62488) Commits ------- 9c6197e Clarify `#[Cache]` attribute precedence behavior
28ddacc to
b93d460
Compare
b93d460 to
a6053f5
Compare
|
Thank you @ayyoub-afwallah. |
|
Note that I didn't merge the check for no-store. It makes no sense to me. |
Before:
The previous controller will result :
Cache-Control : max-age=300, publicinstead of :
Cache-Control : max-age=300, private, no-storeController-defined directives (private, no-store) were lost, which is unexpected and it limits the flexibility of controller-level cache control.
The
#[Cache]is meant for defining default values and shouldn't override the controller.Even the
ResponseHeaderBag::computeCacheControlValue()respects explicit visibility but the#[Cache]doesn'tAfter:
Note
This PR does not change the default behavior of computed cache headers. The
#[Cache]attribute can still override the default values, only explicitly defined controller directives take precedence.