onPHP/onphp-framework — pull request #106 by AlexeyDsov (2012-05-24 18:28:39+00:00)
Title: Улучшение сравнение изменений объекта для создания SQL Update

По мотивам #100. Одна из вылезших проблем до которой никто не добирался, что бизнес объекты (находящиеся в свойствах обновляемого объекта) сравниваются один в один. В то время как при сохранении объекта важно лишь знать изменилось ли id объекта в свойствах или нет.

Так же один в один сравниваются timestamp, а они всегда будут разные и из-за этого всегда будут попадать в update. Все подобные объекты, имеющие интерфейс Stringable, приводятся через него к строке и сравниваются уже эти строки.

Само же сравние изменилось свойство или нет переезжает из StorableDAO в LightMetaProperty/InnerMetaProperty. Там, думаю, этой логике более правильное место + теперь более просто покрыть эту логику тестами что и было сделано.

Тесты прилагаются. Жду недельку за/против, обсуждаем и изменения попадают в мастер, в 1.0 их добавлять, думаю, не стоит.