PHP Fatal Error: Declaration must be compatible with

В 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)

Признаться, не думал, что указание типа аргумента обязательно в таком случае.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *