LegacyValidationRuleParser
final class LegacyValidationRuleParser extends ValidationRuleParser
Parser with the original O(n²) wildcard expansion for baseline benchmarks.
Uses Arr::dot() + regex matching instead of the tree-walk approach, reproducing the pre-optimization wildcard expansion behavior.
Properties
| array | $implicitAttributes | The implicit attributes. |
from ValidationRuleParser |
Methods
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.
Original O(n²) wildcard expansion via Arr::dot() + regex.
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 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.
Details
in
ValidationRuleParser at line 42
__construct(array $data)
Create a new validation rule parser.
in
ValidationRuleParser at line 50
stdClass
explode(array $rules)
Parse the human-friendly rules into a full rules array for the validator.
in
ValidationRuleParser at line 65
protected array
explodeRules(array $rules)
Explode the rules into an array of explicit rules.
in
ValidationRuleParser at line 84
protected array
explodeExplicitRule(mixed $rule, string $attribute)
Explode the explicit rule into an array if necessary.
in
ValidationRuleParser at line 114
protected mixed
prepareRule(mixed $rule, string $attribute)
Prepare the given rule for the Validator.
at line 342
protected array
explodeWildcardRules(array $results, string $attribute, array|object|string $rules)
Original O(n²) wildcard expansion via Arr::dot() + regex.
in
ValidationRuleParser 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.
in
ValidationRuleParser 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.
in
ValidationRuleParser at line 309
protected void
traverseWildcardSegments(array $segments, int $index, mixed $data, string $prefix, array $results)
Recursively traverse data segments to expand wildcard keys.
in
ValidationRuleParser 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.
in
ValidationRuleParser at line 359
array
mergeRules(array $results, array|object|string $attribute, array|object|string $rules = [])
Merge additional rules into a given attribute(s).
in
ValidationRuleParser at line 379
protected array
mergeRulesForAttribute(array $results, string $attribute, array|object|string $rules)
Merge additional rules into a given attribute.
in
ValidationRuleParser at line 394
static array
parse(array|object|string $rule)
Extract the rule name and parameters from a rule.
in
ValidationRuleParser at line 429
static protected array
parseArrayRule(array $rule)
Parse an array based rule.
in
ValidationRuleParser at line 437
static protected array
parseStringRule(string|Stringable $rule)
Parse a string based rule.
in
ValidationRuleParser at line 457
static protected array
parseParameters(string $rule, string $parameter)
Parse a parameter list.
in
ValidationRuleParser at line 465
static protected bool
ruleIsRegex(string $rule)
Determine if the rule is a regular expression.
in
ValidationRuleParser at line 473
static protected string
normalizeRule(string $rule)
Normalizes a rule so that we can accept short types.
in
ValidationRuleParser at line 485
static array
filterConditionalRules(array $rules, array $data = [])
Expand the conditional rules in the given array of rules.
in
ValidationRuleParser at line 513
static void
flushState()
Flush all static state.