horat1us/yii2-enum-validator

Yii2 Range Validator using PHP 8.1 Enums

1.0.0 2025-02-24 09:24 UTC

This package is auto-updated.

Last update: 2025-02-24 09:29:34 UTC


README

Latest Stable Version Total Downloads License PHP Tests

Simple validator for PHP 8.1+ Enums in Yii2 Framework based on RangeValidator.

Installation

composer require horat1us/yii2-enum-validator

Usage

Define your Enum

enum Status: string
{
    case ACTIVE = "active";
    case INACTIVE = "inactive";
    case PENDING = "pending";
}

Use in Model/ActiveRecord rules

use Horat1us\Yii\EnumValidator;
use yii\base;

class YourModel extends base\Model
{
    public ?string $status = null;

    public function rules(): array
    {
        return [
            ["status", "required",],
            ["status", EnumValidator::class, "enumClass" => Enum::class, "strict" => true,],
        ];
    }
}

The validator will ensure that the attribute value matches one of the enum values.

Features

  • Works with both string and int backed enums
  • No additional methods required in enum classes
  • Based on Yii2 RangeValidator
  • Simple integration
  • Fully tested

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.