[HttpKernel] Make #[Cache] respect all explicit cache directives set in controller#62488
Merged
nicolas-grekas merged 1 commit intoDec 5, 2025
Conversation
509ac93 to
28ddacc
Compare
#[Cache] respect all explicit cache directives set in contr…
Member
|
I would consider it as a new feature, and so it should target the 8.1 branch. |
Contributor
Author
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
javiereguiluz
added a commit
to symfony/symfony-docs
that referenced
this pull request
Nov 25, 2025
… (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
Member
|
Thank you @ayyoub-afwallah. |
Member
|
Note that I didn't merge the check for no-store. It makes no sense to me. |
This was referenced Dec 7, 2025
Merged
Merged
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.