@goshaLoonny

Можно ли в PHP передать управление в другой класс?

Опишу задачу. Есть 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 конструкторы не могу ничего возвращать. Как же быть?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
class ResponseObject
{
    public static function parse(object $data): ResponseObject1|ResponseObject2|ResponseObject3|ResponseObject4
    {
        switch ($data->type) {
            case 'type1':
                return new ResponseObject1($data);
            case 'type2':
                return new ResponseObject2($data);
            case 'type3':
                return new ResponseObject3($data);
            case 'type4':
                return new ResponseObject4($data); 
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
28 апр. 2024, в 00:54
10000 руб./за проект
28 апр. 2024, в 00:53
70000 руб./за проект
27 апр. 2024, в 21:24
150000 руб./за проект