Блог хеллоуворлдщика

История изменений ActiveRecord модели в Yii2


Данное расширение необходимо всем, кто работает с важным контентом, и хочет иметь историю о всех изменениях по записи. В проектах с частой и очень важной манипуляцией с данными данная возможность очень и очень важна. Иногда не ясно, кто изменил, зачем и когда. Но, не беда, все будет! =)

Расширение имеет единственное хранилище - в базу данных. В файл, увы, реализация мне не нужна, но если кто-то хочется - тот очень легко сможет такое реализовать указав в модуле соответствующий класс хранилища наследовавшись от bupy7\activerecord\history\storages\Base.

Latest Stable Version Total Downloads Latest Unstable Version License

Ссылка на репозиторий: https://github.com/bupy7/yii2-activerecord-history

share via vkontakte share via facebook share via mailru share via odnoklassniki share via twitter

Комментарии [7]

[XOMA] 26 февр. 2016 г., 13:20:12

А почему бы не сделать хранение истории не поведением а через события и листенер ? Листенер всегда можно отключить/включить и он может работать без правки кода моделей.

Администратор [BUPY7] 26 февр. 2016 г., 16:16:32

Это лишь одна из многих вариантов реализации. И я заметил, что течение событий и слушателей не прижилось в Yii сообществе. Чаще всего используют поведения.

P.S. При разработке я не подключаю поведения напрямую в модель, а через attachBehavior()|attachBehaviors(), поэтому, можно сказать, что имеем тоже самое. Код в модели не затрагивается.

[Руслан] 14 марта 2017 г., 18:19:45

Почему в created_at записывается int а не timestamp?

Администратор [BUPY7] 14 марта 2017 г., 20:10:28

Потому, что мне удобней int.

[Руслан] 15 марта 2017 г., 11:05:46

А нельзя ли сделать выбор типа поля created_at в конфиге поведения?

Администратор [BUPY7] 15 марта 2017 г., 11:56:46

Это не имеет смысла.

Администратор [BUPY7] 15 марта 2017 г., 11:57:09

Вы можете сделать форк и внести нужные для вас изменения.