ValidationRuleParser
class ValidationRuleParser
Properties
| array | $implicitAttributes | The implicit attributes. |
Methods
Create a new validation rule parser.
Parse the human-friendly rules into a full rules array for the validator.
Explode the rules into an array of explicit rules.
Explode the explicit rule into an array if necessary.
Prepare the given rule for the Validator.
Define a set of rules that apply to each element in an array attribute.
Explode wildcard rules using the original flatten + regex approach.
Expand a wildcard attribute into all matching concrete keys by traversing the data structure directly.
Recursively traverse data segments to expand wildcard keys.
Determine if a rules array contains any CompilableRules at any nesting level.
Merge additional rules into a given attribute(s).
Merge additional rules into a given attribute.
Extract the rule name and parameters from a rule.
Parse an array based rule.
Parse a parameter list.
Determine if the rule is a regular expression.
Normalizes a rule so that we can accept short types.
Expand the conditional rules in the given array of rules.
Flush all static state.
Details
at line 42
__construct(array $data)
Create a new validation rule parser.
at line 50
stdClass
explode(array $rules)
Parse the human-friendly rules into a full rules array for the validator.
at line 65
protected array
explodeRules(array $rules)
Explode the rules into an array of explicit rules.
at line 84
protected array
explodeExplicitRule(mixed $rule, string $attribute)
Explode the explicit rule into an array if necessary.
at line 114
protected mixed
prepareRule(mixed $rule, string $attribute)
Prepare the given rule for the Validator.
at line 152
protected array
explodeWildcardRules(array $results, string $attribute, array|object|string $rules)
Define a set of rules that apply to each element in an array attribute.
Uses a direct tree walk instead of flattening the entire data array with Arr::dot() and regex matching. This is O(n) in the number of matching keys instead of O(n*m) where m is the total flattened key count. Port of laravel/framework PR #59287.
at line 191
protected array
explodeWildcardRulesCompilable(array $results, string $attribute, array|object|string $rules)
Explode wildcard rules using the original flatten + regex approach.
Used for CompilableRules which need the flattened data context that the tree-walk path doesn't provide.
at line 293
protected array
expandWildcardKeys(string $attribute, array $data)
Expand a wildcard attribute into all matching concrete keys by traversing the data structure directly.
at line 309
protected void
traverseWildcardSegments(array $segments, int $index, mixed $data, string $prefix, array $results)
Recursively traverse data segments to expand wildcard keys.
at line 341
protected bool
containsCompilableRules(array $rules)
Determine if a rules array contains any CompilableRules at any nesting level.
Checks both top-level elements and elements inside nested arrays, so mixed rule arrays like ['nullable', Rule::forEach(...)] are detected.
at line 359
array
mergeRules(array $results, array|object|string $attribute, array|object|string $rules = [])
Merge additional rules into a given attribute(s).
at line 379
protected array
mergeRulesForAttribute(array $results, string $attribute, array|object|string $rules)
Merge additional rules into a given attribute.
at line 394
static array
parse(array|object|string $rule)
Extract the rule name and parameters from a rule.
at line 429
static protected array
parseArrayRule(array $rule)
Parse an array based rule.
at line 437
static protected array
parseStringRule(string|Stringable $rule)
Parse a string based rule.
at line 457
static protected array
parseParameters(string $rule, string $parameter)
Parse a parameter list.
at line 465
static protected bool
ruleIsRegex(string $rule)
Determine if the rule is a regular expression.
at line 473
static protected string
normalizeRule(string $rule)
Normalizes a rule so that we can accept short types.
at line 485
static array
filterConditionalRules(array $rules, array $data = [])
Expand the conditional rules in the given array of rules.
at line 513
static void
flushState()
Flush all static state.