Здравствуйте.
Есть такой симпатичный валидатор - Valitron, добавление новых правил в нем реализуется вот как:
Valitron\Validator::addRule('alwaysFail', function($field, $value, array $params, array $fields) {
return false;
}, 'Everything you do is wrong. You fail.');
Я не хочу засорять структуру приложения вот такими обрывками кода и хочу написать механизм, который будет перебирать набор правил из определенной папки и добавлять правила, как-то так:
class UniqueRule {
public $name;
public $message;
public function __construct($name, $message) {
$this->name = $name;
$this->message = $message;
}
public function handler(function($field, $value, array $params, array $fields) {
return false;
}
}
И в цикле цеплять эти файлики, брать нейм в качества имени правила, мессейдж как сообщение об ошибке и саму функцию брать из handler.
Но, конкретно как я написал - это с точки зрения ООП че-то не то. Тут явно надо как-то передавать функцию как замыкание, а здесь передача пойдет как вызов. Мне явно не хватает знаний об ООП, чтобы осилить правильную реализацию. Сообщество - помоги! :)