Допустим, у меня есть объект - в данном случае объект User - и я хотел бы иметь возможность отслеживать изменения в отдельном классе. Объект User не должен каким-либо образом изменять свое поведение, чтобы это произошло.
Таким образом, мой отдельный класс создает «чистую» копию, сохраняет ее где-то локально, а затем позже может сравнить объект User с исходной версией, чтобы увидеть, изменилось ли что-нибудь за время его жизни.
Есть ли функция, шаблон или что-то, что может быстро сравнить две версии объекта User?
Вариант 1
Может быть, я мог бы сериализовать каждую версию и напрямую сравнивать или хешировать их и сравнивать?
Вариант 2
Может быть, я должен просто создать ReflectionClass, пройти через все свойства класса и посмотреть, имеют ли две версии одинаковые значения свойств?
Вариант 3
Может быть, есть простая нативная функция, такая как objects_are_equal($object1,$object2);
?
Какой самый быстрый способ сделать это?