Мне известно, что JSON не поддерживает сериализацию функций, что вполне приемлемо и даже желательно. Мои классы в настоящее время используются как объекты-значения при взаимодействии с JavaScript, и функции не будут иметь никакого значения (а обычные функции сериализации не могут использоваться).
Однако, поскольку функциональность, относящаяся к этим классам, возрастает, инкапсуляция их служебных функций (таких как save () в данном случае пользователя) внутри реального класса имеет смысл для меня. Это означает, что они больше не строго оценивают объекты, и именно здесь я сталкиваюсь с моей вышеупомянутой проблемой.
У меня была идея, что имя класса указывалось бы внутри строки JSON, и, вероятно, получилось бы так:
$string = '{"name": "testUser", "password": "testPassword", "class": "User"}';
$object = json_decode ($string);
$user = ($user->class) $object;
И наоборот будет установка свойства класса во время / после json_encode. Я знаю, немного запутанно, но я просто пытаюсь сохранить связанный код вместе. Я, вероятно, в конечном итоге заберу свои вспомогательные функции из классов снова; модифицированный подход конструктора кажется немного непрозрачным и наталкивается на проблемы с вложенными объектами.
Я ценю это и любые будущие отзывы, однако.