kynetcode/wpzylos-validation

Minimal validation with localized messages for WPZylos framework

Maintainers

Package info

github.com/KYNetCode/wpzylos-validation

Documentation

pkg:composer/kynetcode/wpzylos-validation

Fund package maintenance!

Paypal

Statistics

Installs: 62

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-06-16 18:55 UTC

This package is auto-updated.

Last update: 2026-06-16 20:01:51 UTC


README

Data validation and form request layer for WordPress plugins. Provides a fluent Validator, abstract FormRequest with built-in sanitization, structured error handling via MessageBag, and extensibility through custom rules.

Namespace: WPZylos\Framework\Validation

Features

  • Validator - Validate data arrays against rules with pipe syntax or array syntax
  • 14 Built-in Rules - required, string, integer/int, numeric, boolean, array, email, url, min, max, in, regex, nullable
  • 12 Standalone Rule Classes - RequiredRule, EmailRule, UrlRule, NumericRule, AlphaRule, AlphaNumericRule, MinRule, MaxRule, BetweenRule, InRule, ConfirmedRule, RegexRule
  • FormRequest - Abstract class combining authorization, sanitization, and validation
  • 10 Sanitizer Types - text, textarea, html, email, url, int, absint, float, bool, slug, key
  • MessageBag - Structured error collection with per-field access
  • Custom Rules - Extend validation via RuleInterface
  • i18n Support - Optional Translator integration for localized messages
  • Custom Messages - Field-specific and rule-level message overrides

Requirements

Requirement Version
PHP 8.1+
WordPress 6.0+
wpzylos/http Required for FormRequest

Installation

composer require wpzylos/validation

Quick Start

Basic Validation

use WPZylos\Framework\Validation\Validator;

$validator = new Validator(
    data:  ['email' => 'invalid', 'name' => ''],
    rules: ['email' => 'required|email', 'name' => 'required|min:2'],
);

if ($validator->fails()) {
    $errors = $validator->errors();
    echo $errors->first('email');  // "The email field must be a valid email address."
    echo $errors->first('name');   // "The name field is required."
}

// Get validated data (throws ValidationException if invalid)
$data = $validator->validated();

FormRequest

use WPZylos\Framework\Validation\FormRequest;

class StorePostRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'title'   => 'required|string|min:3|max:200',
            'content' => 'required|string',
            'status'  => 'required|in:draft,published',
        ];
    }

    public function sanitize(): array
    {
        return [
            'title'   => 'text',
            'content' => 'html',
            'status'  => 'key',
        ];
    }
}

Documentation

  • Usage Guide - Comprehensive guide covering validation, rules, FormRequest, custom rules, and error handling.
  • API Reference - Full method-by-method reference for every class and interface.

Support the Project

License

MIT License. See LICENSE for details.