Здравствуйте Коллеги
Возможно, кто-нибудь сможет помочь.
Я хочу Динамически подключить поведение "MyValidationBehavior" (Yii2 Behavior) для всех валидаторов наследников базового класса yii\validators\Validator моего проекта.
Я написал код, который добавляет мой "MyValidationBehavior" по одному к каждому классу.
Добавляю "MyValidationBehavior" для всех built In Validator
foreach (\yii\validators\Validator::$builtInValidators as $builtInValidator)
{
$container->set($builtInValidator,
["as $builtInValidator" => ['class' => MyValidationBehavior::className(),]] );
}
Но, я хочу подключить поведение динамически только для базового класса, чтоб остальный классы валидации наследовали поведение базового класса.
Как вы думаете, это возможно?
Что накопал:
1. Если подключал поведение через Component::$behaviors[]
то наследники-классы имеют заданное в базовом поведение.
2. Я пробовал подключить динамически свое поведение в "\yii\validators\Validator" но без успеха, классы-наследники были без моего поведения.
Пример попыток:
$container = \Yii::$container;
//вариант 1
$container->set('\yii\validators\Validator',
["as Validator" => ['class' => MyValidationBehavior::className(),]]);
//вариант 2
$validator = $container->get('yii\validators\Validator');
$validator->attachBehavior('Validator', MyValidationBehavior::className());
Если нужна дополнительная информация, постараюсь ответить.
Спасибо!)
P.S.