Skip to content

Conversation

AlexeyDsov
Copy link
Member

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

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

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

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

P.S. в этот request так же попали изменения из #105

@AlexeyDsov
Copy link
Member Author

По предложению @wizardjedi заменил проверку с помощью toString и заодно === на сравнение сериализованных строк

AlexeyDsov added a commit that referenced this pull request Jun 26, 2012
Улучшение сравнения измененных свойст объекта для создания SQL Update
@AlexeyDsov AlexeyDsov merged commit 5296afc into onPHP:master Jun 26, 2012
@AlexeyDsov
Copy link
Member Author

Комментариев так больше и не последовало, замержил в мастер.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant