В нашем backoffice мы имеем основную систему, которая генерирует модели из БД. При возвращении одного объекта мы создаем экземпляр stdClass. Все столбцы из результата запроса заданы как свойства, и по завершении обработки результата запроса объект stdClass преобразуется в класс Decorator. В основном класс Decorator имеет один proprty $ _oObject, в котором хранится stdClass. Мы делаем этот контроль над динамически создаваемыми объектами. Все работает отлично.
Тем не менее, я работаю над веб-сервером с помощью SOAP. Webservice возвращает весь объект Decorator (возможно, могут быть под-объекты, также являющиеся объектами Decorator и суб-субъектом и т. Д.). Эта структура прекрасно работает с нашей внутренней системой, потому что мы контролируем объект Decorator, но для внешнего мира я хочу вернуть структуру объекта Decorator в экземпляр stdClass, а подклассы также являются stdClasses. В основном я хочу удалить все «узлы» в print_r-результате, содержащем Decorator.
Любые идеи о том, как добиться того, чего я хочу (см. Результаты ниже). PHP get_object_vars
ничего не возвращает и на самом деле я застрял.
Мои выборочные данные:
Decorator Object ( [oClass:Decorator:private] => stdClass Object ( [Id] => 1 [FAQCategoryId] => 1 [TitleId] => 1 [ContentId] => 2 [Views] => 226 [DateCreated] => 2011-10-31 11:17:44 [DateModified] => [Title] => My title.. [Content] => My content.. [AttachmentSet] => Array ( [0] => Decorator Object ( [oClass:Decorator:private] => stdClass Object ( [Id] => 1 [LanguageId] => 1 [FAQItemId] => 1 [Attachment] => file1.pdf ) ) [1] => Decorator Object ( [oClass:Decorator:private] => stdClass Object ( [Id] => 2 [LanguageId] => 1 [FAQItemId] => 1 [Attachment] => file2.pdf ) ) ) ) )
Я хочу преобразовать его в:
stdClass Object ( [Id] => 1 [FAQCategoryId] => 1 [TitleId] => 1 [ContentId] => 2 [Views] => 226 [DateCreated] => 2011-10-31 11:17:44 [DateModified] => [Title] => My title.. [Content] => My content.. [AttachmentSet] => Array ( [0] => stdClass Object ( [Id] => 1 [LanguageId] => 1 [FAQItemId] => 1 [Attachment] => file1.pdf ) [1] => stdClass Object ( [Id] => 2 [LanguageId] => 1 [FAQItemId] => 1 [Attachment] => file2.pdf ) ) )