API Reference

Complete method-by-method reference for all classes in WPZylos\Framework\Validation.


Validator

class WPZylos\Framework\Validation\Validator

Validates data against rules with localized error messages.

Constructor

new Validator(
    array $data,
    array $rules,
    array $messages = [],
    array $attributes = [],
    ?Translator $translator = null
)
ParameterTypeDescription
$dataarrayData to validate
$rulesarrayValidation rules (pipe string or array per field)
$messagesarrayCustom error messages
$attributesarrayCustom attribute display names
$translator?TranslatorOptional translator for i18n

Methods

validate

public function validate(): bool

Run validation. Returns true if all rules pass, false otherwise.

fails

public function fails(): bool

Check if validation fails. Auto-runs validation if not yet executed.

passes

public function passes(): bool

Check if validation passes. Inverse of fails().

errors

public function errors(): MessageBag

Get the validation error bag. Auto-runs validation if not yet executed.

validated

public function validated(): array

Get validated data (only fields that had rules). Throws ValidationException if validation fails.

extend (static)

public static function extend(string $name, RuleInterface $rule): void

Register a custom validation rule globally. Takes a RuleInterface instance, not a closure.


FormRequest (abstract)

abstract class WPZylos\Framework\Validation\FormRequest

Combines authorization, sanitization, and validation for HTTP form requests.

Constructor

new FormRequest(Request $request, ?Translator $translator = null)
ParameterTypeDescription
$requestRequestHTTP request instance (from wpzylos-http)
$translator?TranslatorOptional translator for i18n

Methods

authorize

public function authorize(): bool

Check if the user is authorized. Default returns true. Override to add authorization logic.

rules (abstract)

abstract public function rules(): array

Define validation rules. Must be implemented by subclasses.

sanitize

public function sanitize(): array

Define field sanitization mapping. Returns ['field' => 'type']. Default returns [].

Available types: text, textarea, html, email, url, int, integer, absint, float, bool, boolean, slug, key.

messages

public function messages(): array

Define custom error messages. Default returns [].

attributes

public function attributes(): array

Define custom attribute display names. Default returns [].

validate

public function validate(): bool

Run validation. Returns true if all rules pass.

fails

public function fails(): bool

Check if validation fails.

errors

public function errors(): MessageBag

Get validation errors.

validated

public function validated(): array

Get validated and sanitized data. Throws ValidationException if validation fails.

data

public function data(): array

Get sanitized input data from the request. Applies sanitizers defined in sanitize(). Result is cached.


MessageBag

class WPZylos\Framework\Validation\MessageBag

Collects validation error messages per field.

Methods

add

public function add(string $field, string $message): void

Add an error message for a field.

hasErrors

public function hasErrors(): bool

Check if there are any errors.

has

public function has(string $field): bool

Check if a specific field has errors.

first

public function first(string $field): ?string

Get the first error message for a field. Returns null if no errors.

get

public function get(string $field): array

Get all error messages for a field. Returns empty array if no errors.

all

public function all(): array

Get all error messages grouped by field. Returns array<string, string[]>.

flatten

public function flatten(): array

Get all error messages as a flat array. Returns string[].

count

public function count(): int

Get the total count of all error messages across all fields.

keys

public function keys(): array

Get the list of field names that have errors. Returns string[].

toArray

public function toArray(): array

Convert to array. Same as all(). Returns array<string, string[]>.


ValidationException

class WPZylos\Framework\Validation\ValidationException extends Exception

Thrown when validated() is called and validation fails.

Constructor

new ValidationException(
    MessageBag $errors,
    string $message = 'The given data was invalid.',
    int $code = 0,
    ?Throwable $previous = null
)

Methods

errors

public function errors(): MessageBag

Get the validation error bag.


RuleInterface

interface WPZylos\Framework\Validation\RuleInterface

Contract for custom validation rules.

Methods

passes

public function passes(string $field, mixed $value, array $parameters, array $data): bool

Validate a value. Returns true if valid.

ParameterTypeDescription
$fieldstringField name being validated
$valuemixedField value
$parametersarrayRule parameters (from colon syntax)
$dataarrayAll data being validated

message

public function message(): string

Get the error message template. Supports :attribute and :paramN placeholders.


Rule Classes

All classes are in WPZylos\Framework\Validation\Rules and implement RuleInterface.

RequiredRule

Validates that a field is present and not empty.

  • null fails
  • Empty string '' fails
  • Empty array [] fails

EmailRule

Validates a valid email address via filter_var(FILTER_VALIDATE_EMAIL).

UrlRule

Validates a valid URL via filter_var(FILTER_VALIDATE_URL).

NumericRule

Validates that the value is numeric via is_numeric().

AlphaRule

Validates that the value contains only alphabetic characters. Uses Unicode-aware pattern /^[\pL\pM]+$/u.

AlphaNumericRule

Validates that the value contains only letters and numbers.

MinRule

Validates minimum constraint. Usage: min:3

  • Strings: mb_strlen($value) >= $min
  • Arrays: count($value) >= $min
  • Numeric: $value >= $min

MaxRule

Validates maximum constraint. Usage: max:255

  • Strings: mb_strlen($value) <= $max
  • Arrays: count($value) <= $max
  • Numeric: $value <= $max

BetweenRule

Validates value is between two bounds. Usage: between:3,10

  • Strings: length between min and max
  • Arrays: count between min and max
  • Numeric: value between min and max

InRule

Validates that the value is in a list of allowed values (strict comparison).

ConfirmedRule

Validates that a field matches its confirmation field. For field password, checks password_confirmation in the data array.

RegexRule

Validates that the value matches a regex pattern via preg_match().


ValidationServiceProvider

class WPZylos\Framework\Validation\ValidationServiceProvider extends ServiceProvider

Methods

register

public function register(ApplicationInterface $app): void

Registers a 'validator' binding as a factory closure. The factory returns a function that creates Validator instances with automatic Translator injection if available in the container.

Binding: 'validator' returns Closure that accepts (array $data, array $rules, array $messages = [], array $attributes = []) and returns a Validator instance.