[Security] Add #[AsVoter] attribute to configure voter priority
#62341
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.
Description
This PR introduces a new
#[AsVoter]attribute that allows security voters to declare their priority directly within the class, as proposed in issue #43074.Motivation
While
#[AsTaggedItem]or#[Autoconfigure]can technically set voter priority, they require manually specifying tag names and options, making the configuration verbose, error-prone, and less intuitive.The goal of
#[AsVoter]is to simplify voter configuration and make it explicit, intuitive, and easy to use, following the pattern of other Symfony attributes such as#[AsEventListener].The
#[AsVoter]attribute provides:#[AsCommand],#[AsEventListener],#[AsMessageHandler], etc.Behavior
#[AsVoter]attribute overrides YAML configuration and other attributes (#[AsTaggedItem]#[Autoconfigure])Before
After