Skip to content

Changelog

All notable changes to Valicomb are documented on this page.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


  • Documentation website using Astro Starlight
  • Strict mode for stricter validation behavior
  • Inline custom messages support for per-rule error messages
  • New validation rules:
    • urlStrict for URL validation with required scheme
    • uuid with support for versions 1-5
    • startsWith and endsWith for string prefix/suffix validation
    • decimalPlaces for controlling decimal precision
    • positive for strictly positive numbers
    • past and future for date validation
    • phone with support for 12 countries
    • requiredWith / requiredWithout for conditional validation
    • IPv4 / IPv6 / ASCII for network and character validation
    • arrayHasKeys for required array keys
  • Case-insensitive option for string matching rules

Complete rewrite of the Valitron validation library for modern PHP.

  • PHP 8.2+ with strict types throughout
  • Zero dependencies (only ext-mbstring required)
  • Automatic ReDoS pattern detection
  • RFC 5321 email validation with length limits
  • PHPStan Level 8 compliance
  • PSR-12 code style
  • 430+ tests
  • 33 language translations
  • Extracted core classes (ErrorManager, LanguageManager, RuleRegistry)
  • Organized validation rules into trait files
  • Clean separation of concerns
  • numeric rule now properly handles scientific notation (e.g., 1.2e3)
  • Strict equality comparisons (no type juggling)
  • Path traversal protection in language loading

If you’re migrating from vlucas/valitron:

  1. Namespace change

    // Before
    use Valitron\Validator;
    // After
    use Frostybee\Valicomb\Validator;
  2. PHP version requirement

    • Valicomb requires PHP 8.2+
    • Update your composer.json accordingly
  3. Strict types

    • All code uses strict types
    • Ensure your data types are correct
  4. Deprecated methods

    • mapFieldRules() → Use mapOneFieldToRules()
  • mapFieldsRules() → Use mapManyFieldsToRules()

Found a bug? Have a feature request?

  • GitHub Issues
  • For security issues, please use GitHub’s private security advisory feature.