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
)
| Parameter | Type | Description |
|---|---|---|
$data | array | Data to validate |
$rules | array | Validation rules (pipe string or array per field) |
$messages | array | Custom error messages |
$attributes | array | Custom attribute display names |
$translator | ?Translator | Optional 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)
| Parameter | Type | Description |
|---|---|---|
$request | Request | HTTP request instance (from wpzylos-http) |
$translator | ?Translator | Optional 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.
| Parameter | Type | Description |
|---|---|---|
$field | string | Field name being validated |
$value | mixed | Field value |
$parameters | array | Rule parameters (from colon syntax) |
$data | array | All 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.
nullfails- 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.