Должен ли я создавать оболочки для всех моих обменов RESTful JSON? - PullRequest
1 голос
/ 13 июня 2011

У меня есть несколько звонков на многие службы RESTful.Я перевожу на PHP, используя собственный PHP json_decode, когда получаю данные, и использую json_encode при отправке данных.

Меня беспокоит то, что с глубоко вложенными данными я в конечном итоге пишу такой код:1006 *

Это может быть довольно грязно.Я чувствую, что было бы полезно создать объекты, чьи методы / переменные экземпляра обернуты вокруг этих структур, так что я мог бы сделать:

$interestType = $person->getChild($i)->getInterest($j)->getType();

Это кажется мне более понятным, но на самом деле это не намного более кратко.

Каковы преимущества простого выполнения всего с использованием собственных массивов PHP и написания классов-оболочек для каждого ресурса REST?

Меня беспокоит то, что мне придется писать собственные функции кодирования / декодирования для сопоставленияк этим оберткам.

1 Ответ

0 голосов
/ 13 июня 2011

Я не знаком с реализацией объектов в PHP, но читая этот блог о массиве против производительности , кажется, что издержки минимальны.Так что я думаю, это сводится к стилевым предпочтениям.Простой (не вложенный) массив в объект конвертер можно найти здесь:


Компромисс, который было бы тривиально реализовать:

<?php

$json = '{"a": [{"aa" : 11}, {"ab" : 12}],"b":2,"c":3,"d":4,"e":5}';

$o = json_decode($json);       // plain object
$a = json_decode($json, true); // this will yield an array

echo $o->a[0]->aa;

?>

json_decode принимает необязательный аргумент,это определяет, будет ли предоставленный JSON преобразован в ассоциативный массив.Если это не так ($o), у вас есть половина синтаксиса, к которому вы стремитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...