Опишу задачу. Есть API которое возвращает JSON в котором есть объект. Структура объекта может быть разной, определить что за объект можно только посмотрев поле type. В документации описаны все возможные структуры. В js я бы мог просто сделать так:
class ResponceObject{
constructor(data) {
switch (data.type) {
case 'type1': return new ResponceObject1(data);
case 'type2': return new ResponceObject2(data);
case 'type3': return new ResponceObject3(data);
case 'type4': return new ResponceObject4(data);
}
}
}
но в php конструкторы не могу ничего возвращать. Как же быть?