- Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Fatal error: Uncaught Error: Interface "ValidatorRuleInterface" not found in /in/GbBpm:3
Stack trace:
#0 {main}
thrown in /in/GbBpm on line 3
Process exited with code 255.
<?php
class CorrectStructureValidator implements ValidatorRuleInterface
{
private string $format = 'Поле должно иметь следующий вид: %s. Вы написали - %s.';
private string $pattern;
private string $verbalDescriptionOfPattern;
public function __construct(string $pattern, string $verbalDescriptionOfPattern)
{
$this->pattern = $pattern;
$this->verbalDescriptionOfPattern = $verbalDescriptionOfPattern;
}
public function __invoke(mixed $value): ?ValidationError
{
$result = preg_match($this->pattern, $value);
if (!result) {
$errorText = sprintf(
$this->format,
$this->verbalDescriptionOfPattern,
$value
);
return new ValidationError($errorText);
} else {
return null;
}
}
}