yii2 переопределние базового класса через classMap
Re: yii2 переопределние базового класса через classMap
я так думаю конфиги валидаторов хранить в бд?)
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: yii2 переопределние базового класса через classMap
автолоадер Yii рабоает же след. образомlynicidn писал(а):не понял сейчас - а как это отразится на других классах? ведь алиасы не перегружены, все будет работать как прежде, классмап это своего рода исключения
1) Если нужный класс есть в classMap, импортирует заданный файл
2) Если нет, ищет файл по алиасу.
Как я сказал в данном случае все будет работать, но не стоит привыкать к подмене путей к классам, потому что
1) допустим появится класс `yii\validators\Validator\CoolValidator`, при заданном псевдониме будет импортирован файл app/common/Validator/CoolValidator.php
2) Или завтра вы пойдете еще дальше, начнете подменять папки, заданием алиаса 'yii\validators' => '@app/common/validators' и пошло поехало.
Для всего этого, для гибкой работы с классами и объектами, чтоб не завязыватся на конкретных реализациях и был придуман контейнер, и после долгих уговоров он появился и в Yii, так почему бы не делать правильно, без костылей? Не стоит переносить старые вредные привычки из Yii1 в Yii2
Жду Yii 3!
Re: yii2 переопределние базового класса через classMap
так она подменяет базовый класс
п.с. а как тут поможет контейнер/?
п.с. а как тут поможет контейнер/?
Re: yii2 переопределние базового класса через classMap
Да собственно задачка была не такая уж принципиальная - мне приспичило чтоб оно автоматом к кастомным сообщениям ошибок название аттрибута впаивало, стала ковырять как это можно реализовать,не переопределяя все классы и получилось что только если createValidator переопределить, была задача разобраться как решить задачу и на этом собственно mission complete, больше for fun
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: yii2 переопределние базового класса через classMap
Так вроде в ошибки так вставляются атрибуты и значения: "{attribute} incorrect: {value] is invalid"
Жду Yii 3!
Re: yii2 переопределние базового класса через classMap
Это если по умолчанию сообщения, а если свои пишешь - то уж что напишешь то и будет
Re: yii2 переопределние базового класса через classMap
в свои тоже можно вставлять же
Re: yii2 переопределние базового класса через classMap
Можно, но влом... на самом деле это еще проще - переопределением addError решается... но мы не ищем лёгких путей в освоении фреймворка
Re: yii2 переопределние базового класса через classMap
зачем чтото расширять, в рулесах
['attribute', 'validator', 'message' => Yii::t()]
['attribute', 'validator', 'message' => Yii::t()]
Re: yii2 переопределние базового класса через classMap
Да знаю я, там они без аттрибутов были записаны, дописывать вручную влом было, стала искать как автоматом аттрибуты подставлять, стало интересно можно ли и как-то базовый класс валидатора переопределить... вот и всё... просто сферический конь в вакууме, ничего больше
Re: yii2 переопределние базового класса через classMap
Можно подробнее описать как получилось?Insolita писал(а):Кстати Проканало )) в namespace дело было - я указала namespace yii\validators и в конфиге задала алиас 'yii\validators\Validator' => '@app/common/Validator', классмап соответственно после загрузки конфига.
жёстко конечно, но работает.