<?php namespace yiiunit\data\validators; use yii\validators\Validator; class TestValidator extends Validator { private $_validatedAttributes = []; private $_setErrorOnValidateAttribute = false; public function validateAttribute($object, $attribute) { $this->markAttributeValidated($attribute); if ($this->_setErrorOnValidateAttribute == true) { $this->addError($object, $attribute, sprintf('%s##%s', $attribute, get_class($object))); } } protected function markAttributeValidated($attr, $increaseBy = 1) { if (!isset($this->_validatedAttributes[$attr])) { $this->_validatedAttributes[$attr] = 1; } else { $this->_validatedAttributes[$attr] = $this->_validatedAttributes[$attr] + $increaseBy; } } public function countAttributeValidations($attr) { return isset($this->_validatedAttributes[$attr]) ? $this->_validatedAttributes[$attr] : 0; } public function isAttributeValidated($attr) { return isset($this->_validatedAttributes[$attr]); } public function enableErrorOnValidateAttribute() { $this->_setErrorOnValidateAttribute = true; } }