yii2 переопределние базового класса через classMap

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: yii2 переопределние базового класса через classMap

Сообщение lynicidn »

я так думаю конфиги валидаторов хранить в бд?)
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение slavcodev »

lynicidn писал(а):не понял сейчас - а как это отразится на других классах? ведь алиасы не перегружены, все будет работать как прежде, классмап это своего рода исключения
автолоадер Yii рабоает же след. образом

1) Если нужный класс есть в classMap, импортирует заданный файл
2) Если нет, ищет файл по алиасу.

Как я сказал в данном случае все будет работать, но не стоит привыкать к подмене путей к классам, потому что

1) допустим появится класс `yii\validators\Validator\CoolValidator`, при заданном псевдониме будет импортирован файл app/common/Validator/CoolValidator.php
2) Или завтра вы пойдете еще дальше, начнете подменять папки, заданием алиаса 'yii\validators' => '@app/common/validators' и пошло поехало.

Для всего этого, для гибкой работы с классами и объектами, чтоб не завязыватся на конкретных реализациях и был придуман контейнер, и после долгих уговоров он появился и в Yii, так почему бы не делать правильно, без костылей? Не стоит переносить старые вредные привычки из Yii1 в Yii2
Жду Yii 3!
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: yii2 переопределние базового класса через classMap

Сообщение lynicidn »

так она подменяет базовый класс
п.с. а как тут поможет контейнер/?
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение Insolita »

Да собственно задачка была не такая уж принципиальная - мне приспичило чтоб оно автоматом к кастомным сообщениям ошибок название аттрибута впаивало, стала ковырять как это можно реализовать,не переопределяя все классы и получилось что только если createValidator переопределить, была задача разобраться как решить задачу и на этом собственно mission complete, больше for fun
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение slavcodev »

Так вроде в ошибки так вставляются атрибуты и значения: "{attribute} incorrect: {value] is invalid"
Жду Yii 3!
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение Insolita »

Это если по умолчанию сообщения, а если свои пишешь - то уж что напишешь то и будет
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: yii2 переопределние базового класса через classMap

Сообщение lynicidn »

в свои тоже можно вставлять же :)
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение Insolita »

Можно, но влом... на самом деле это еще проще - переопределением addError решается... но мы не ищем лёгких путей в освоении фреймворка :-)
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: yii2 переопределние базового класса через classMap

Сообщение lynicidn »

зачем чтото расширять, в рулесах
['attribute', 'validator', 'message' => Yii::t()]
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: yii2 переопределние базового класса через classMap

Сообщение Insolita »

Да знаю я, там они без аттрибутов были записаны, дописывать вручную влом было, стала искать как автоматом аттрибуты подставлять, стало интересно можно ли и как-то базовый класс валидатора переопределить... вот и всё... просто сферический конь в вакууме, ничего больше
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: yii2 переопределние базового класса через classMap

Сообщение chesar »

Insolita писал(а):Кстати Проканало :-))) в namespace дело было - я указала namespace yii\validators и в конфиге задала алиас 'yii\validators\Validator' => '@app/common/Validator', классмап соответственно после загрузки конфига.
жёстко конечно, но работает.
Можно подробнее описать как получилось?
Ответить