у меня есть ответ на запрос rest api в этой форме
{
"first_field": null,
"elements": [
{
"type": "type_1",
"quantity": 234
},
{
"type": "type_2",
"quantity": 432
},
{
"type": "type_3",
"quantity": 112
},
{
"type": "type_4",
"quantity": 212
}
],
"third_field": {
"option1": value1,
"option2": "value2",
"option3": "value3",
"option4": "value4"
}
}
Я хотел бы передать его конструктору для создания объекта.
Я думал использовать Symfony4 OptionsResolver для его настройки.
Пустой и неполный пример
class Status{
public function __construct(array $options){
$resolver = new OptionsResolver();
$this->configureOptions($resolver);
$this->options = $resolver->resolve($options);
$this->init();
}
protected function init(){
foreach($this->options['elements'] as $element){
switch($element['type']){
case 'type_1'
$this->type1 = $element['quantity'];
break;
// And so on
}
}
}
}
Как я могу определить в OptionsResolver массив элементов?
Для третьего поля решение - это вложенные опции , но это массив опций, а не массив опций ...
Заранее спасибо
EDIT
Для создания нового объекта из объекта Json хорошим решением может быть karriere / json-decoder