Active Record динамическое поведение

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
odermy
Сообщения: 109
Зарегистрирован: 2012.07.29, 20:51

Active Record динамическое поведение

Сообщение odermy »

Есть ли дефолтный способ прикрепить динамически поведение к Active Record (к примеру в boostrapinge) ?
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Active Record динамическое поведение

Сообщение skynin »

Поведения могут быть прикреплены и отвязаны от компонента динамически, без необходимости модифицирования класса компонента.
Подробнее - https://www.yiiframework.com/doc/guide/ ... -behaviors
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
odermy
Сообщения: 109
Зарегистрирован: 2012.07.29, 20:51

Re: Active Record динамическое поведение

Сообщение odermy »

Могут да не хотят ) читал стест-но, вопрос открытый, любой из компонентов конфигурируется в предзагрузке через container set, но только не active record, применить там дефолтный вариант типа as newBehavior ничего не дает
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Active Record динамическое поведение

Сообщение ElisDN »

odermy писал(а): 2020.09.05, 15:58 Есть ли дефолтный способ прикрепить динамически поведение к Active Record?
А для чего именно это нужно?
odermy
Сообщения: 109
Зарегистрирован: 2012.07.29, 20:51

Re: Active Record динамическое поведение

Сообщение odermy »

Всегда считал что можно это сделать в том числе и для AR, изначально хотелось не залезая внутрь компонентов сделать общую точку для крипежа поведений в предзагрузке
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Active Record динамическое поведение

Сообщение skynin »

-- Всегда считал что можно это сделать в том числе и для AR
Тогда заводите баг на гитхабе https://github.com/yiisoft/yii2
Там и на русском можно.

Это круто, найти такой серьезный баг в самой архитектуре фреймворка, и грубое несоответствие документации.
samdark нередко говорит на докладах именно это, что поведения в Yii гибче trait'ов как раз из-за возможности добавлять их в рантайме.

Сам же с такой проблемой не сталкивался, как-то не надо было пока в рантайме добавлять поведение.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Active Record динамическое поведение

Сообщение samdark »

применить там дефолтный вариант типа as newBehavior ничего не дает
Так понятное дело. ActveRecord - не сервис. Вы создаёте каждый раз новые инстансы, причём через new.
Там и на русском можно.
Но лучше не нужно. Не вся команда Yii 2 поймёт язык.
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Active Record динамическое поведение

Сообщение skynin »

-- Вы создаёте каждый раз новые инстансы, причём через new.
да, как-то не подумал, что чел может пытаться через new это делать.

У меня несколько ARок вообще не всегда создаются, DI запрашивает через особый статик метод, который берет из пула, драфтовые записи.
А снаружи запрашивающему без разницы что получил, вызвав Yii::createObject
Еще подход частый прячут Yii::createObject в свой метод ::new у соответствующего класса.

-- Но лучше не нужно. Не вся команда Yii 2 поймёт язык.
Да это мелкий тролинг был - если уверен что такой серьезный баг - то надо ж явить его миру.

...я вот обычно не уверен.
как недавно вот, у меня некоторые мемори таблицы создаются по ексепшену, и повтором записи в них.
и был он int 42...
надо было написать конечно на гитхабе, а не "ну, сгодится и так, хотя код ошибки в действительности немножко длинней"
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
odermy
Сообщения: 109
Зарегистрирован: 2012.07.29, 20:51

Re: Active Record динамическое поведение

Сообщение odermy »

На самом деле слой моделей стоит "стороной" в доках (хотя он обычно самый большой в приложениях), поведения есть но только статичные, инжектирование зависемостей есть но нужно как минимум переопрделить instantiate, мож записать в доку?
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Active Record динамическое поведение

Сообщение skynin »

-- мож записать в доку?
это уже детали реализации.
Которые - есть в исходниках :)

А как наворачивать - это уже не дока, а учебник получится

Смотришь в исходники - там все написано. на php.
Даже комментариии - отличные!
Хотя код вполне внятный, можно и без них.
Полез я как-то в Eqlouent, от там да, полная ж
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Ответить