Но чё-то не получается... я хочу переопределить класс базового Валидатора во входном после включения yii пишу
Код: Выделить всё
Yii::$classMap['yii/validators/Validator'] = __DIR__ .'/../common/ExValidator.php';
Код: Выделить всё
Yii::$classMap['yii/validators/Validator'] = __DIR__ .'/../common/ExValidator.php';
Код: Выделить всё
Yii::$classMap['yii\validators\Validator'] = __DIR__ .'/../common/ExValidator.php';
Код: Выделить всё
\Yii::$container->set(
'yii\validators\ NumberValidator',
'common\validators\NumberValidator'
);
Код: Выделить всё
\Yii::$container->set(
'yii\validators\ NumberValidator',
['class' => 'common\validators\NumberValidator']
);
Подменить через classMap можно, но новый класс невозможно унаследовать от старого, т.к. новый должен иметь то же имя класса и даже неймспейс.lynicidn писал(а):базовый через классМап, так же можно хелперы подменять
да нет, я не до такой степени блондинка, мой базовый от Component наследуется т.е. повторяет базовый валидатораТопик стартер хотел сделать свой \yii\validators\Validator, и унаследоватся от стандартного \yii\validators\Validator.
ничего жестокого, для этих целей я так и понимаю это сделано, по другомы не перегрузить классыInsolita писал(а):Кстати Проканало )) в namespace дело было - я указала namespace yii\validators и в конфиге задала алиас 'yii\validators\Validator' => '@app/common/Validator', классмап соответственно после загрузки конфига
жёстко конечно, но работает.
а в общем-то оно так и вообще без classmap работает... правда на локалке, как в вебе не знаю
Без обид, я не думал никого обидеть, просто сделал поспешный вывод, по этой ошибке что что-то не так у тебя в ExValidator.phpInsolita писал(а):да нет, я не до такой степени блондинка, мой базовый от Component наследуется т.е. повторяет базовый валидатора
ну через классмап фактически переопределить получилось, но не работает, ругается - 'yii\base\UnknownClassException' with message 'Unable to find 'yii\validators\Validator' in file: /home/insolita/www/data/vg/web/../common/ExValidator.php. Namespace missing?'
Да жестко, только теперь он все классы из этого пространства будет искать по новому пути, кроме тех что есть в classMap, т.е. со стандартными валидаторами сработает, но не стоит к этому привыкать.Insolita писал(а):Кстати Проканало )) в namespace дело было - я указала namespace yii\validators и в конфиге задала алиас 'yii\validators\Validator' => '@app/common/Validator', классмап соответственно после загрузки конфига.
жёстко конечно, но работает.
плюсую, хороший вопросslavcodev писал(а):Что такого особенного тебе понадобилось, чтоб подделывать базовый Validator?