- preg_match: documentation ( source)
- sprintf: documentation ( source)
<?php
class CheckForSymbolQuality
{
private string $format = 'Это поле может содержать следующие символы - %s. Проверьте, не использовали ли Вы символ, который не входит в этот список.';
private string $pattern;
private string $verbalDescriptionOfPattern;
public function __construct(string $pattern, string $verbalDescriptionOfPattern)
{
$this->pattern = $pattern;
$this->verbalDescriptionOfPatter = $verbalDescriptionOfPatter;
}
public function __invoke (mixed $value): ?string
{
return preg_match($this->pattern, $value) ? null : sprintf($format, $this->verbalDescriptionOfPattern);
}
}