В Phalcon’е есть два механизма валидации. Валидация модели \Phalcon\Mvc\Model\Validator и валидация произвольных данных \Phalcon\Validation\Validator.
Второй вариант можно применить и к модели, в том числе в дополнение к встроенным в нее валидациям.
Однако, пришлось столкнуться с ошибкой при попытке написать и вызвать собственный валидатор:
Class MyValidator extends \Phalcon\Validation\Validator implements \Phalcon\Validation\ValidatorInterface {
public function validate($validator, $attribute) {
// ...
return true;}
}
получаем ошибку: PHP Fatal Error: Declaration of MyValidator::validate() must be compatible with Phalcon\Validation\ValidatorInterface::validate(Phalcon\Validation $validation, $attribute) in ... on line ...
(указание на файл и строку декларации класса валидатора MyValidator).
Немало провозившись, обнаружил, что в декларации функции validate в классе валидатора должен быть Type Hinting (контроль типа аргумента):
public function validate(\Phalcon\Validation $validator, $attribute)
Признаться, не думал, что указание типа аргумента обязательно в таком случае.