Files
fil/docs/snippets/php/plugins/min_length_validator.md
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

1.2 KiB

<?php declare(strict_types=1);

use Kreuzberg\Kreuzberg;

class MinLengthValidator implements Validator {
    private int $minLength;

    public function __construct(int $minLength = 50) {
        $this->minLength = $minLength;
    }

    public function name(): string {
        return "min-length-validator";
    }

    public function version(): string {
        return "1.0.0";
    }

    public function initialize(): void {
        // Validation configuration loaded
    }

    public function shutdown(): void {
        // Cleanup
    }

    public function validate(object $result, object $config): void {
        $contentLength = strlen($result->content);

        if ($contentLength < $this->minLength) {
            throw new Exception(
                sprintf(
                    "Content too short: %d < %d characters",
                    $contentLength,
                    $this->minLength
                )
            );
        }
    }

    public function priority(): int {
        return 100;
    }
}

// Register validator with 50-character minimum
$validator = new MinLengthValidator(50);
Kreuzberg::registerValidator($validator);

echo "Min-length validator registered (minimum: 50 chars)\n";