#php
#php
Вопрос:
У компании, в которой я работаю, есть API, и я переношу этот API на PHP. Прямо сейчас API возвращает мне большой объект JSON, и я пытаюсь выяснить, как мне следует обрабатывать данные. У меня могла бы быть целая куча методов «get», таких как:
$t = new APIThing();
$t->getJSONObjects();
for ($i=0; ...) {
$t->getHeadline($i);
}
Или я мог бы вернуть объект JSON и позволить людям самим играть с данными, так что это было бы что-то вроде этого
$t = new APIThing();
$t->getJSONObjects();
foreach ($t as $u) {
echo $u->headline;
}
Итак, что вы думаете? Просто предоставить объект JSON или преобразовать все это в функции?
Комментарии:
1. Обычно второй подход проще. Если вы не планируете изменять поведение средства получения заголовка, то его безопасно не использовать.
Ответ №1:
вместо этого у вас может быть класс, который получает что-либо из JSON
class GETAPI {
protected $api;
function __construct(){
$this->api = new APIThing();
$this->api->getJSONObjects();
}
function getAllFromAPI($name){
foreach($this->api as $u){
echo $u->$name;
}
}
//or :
function getFromAPI($name, $index){
return $this->api[$index]->$name;
}
}
это элементарно и могло бы потребовать некоторой работы, но эта работа заключается в создании многих функций get
чем все, что вам нужно было бы сделать, это что-то вроде:
$api = new GETAPI();
$api->getAllFromAPI('headline');
//or
echo $api->getFromAPI('headline', 1); // with one as the array index
Комментарии:
1. Я тоже вроде как думал об этом подходе … просто используя функцию PHP magic __call()… но внутри объектов есть объекты, и я думаю, что это может стать немного сложным
2. возможно, также: я забыл
$this
в моем примере, я добавил это в3. аааа, я также не вижу, что ваш объект был в цикле, через секунду я исправлю код
4. @JoeC, теперь я создал в вызове 2 отдельные функции: одну для получения всех данных из api, а другую только для получения индекса