Решил написать подробнее.
Проект: сервис обработки авторизационных данных для виджетов для ЦРМ.
Есть набор виджетов (Widget), которые ставят клиенты (Account). Связь виджета и аккаунта - установка (Install) у неё есть статус (оплаченность, привязываются реквизиты O2Auth и тд). Установка связана с аккаунтом и виджетом связью «один ко многим».
Есть несколько точек входа, откуда надо получать (и отдавать) информацию об установке (и связанном виджете и аккаунте) по айди установки.
Есть три разных фронта, которым нужно отдавать три разных массива. Так же при определенных действиях нужно отправлять хуки с данными об установки во внешние сервисы ( реализовано с помощью джобов) - пока их два.
Все 4 формата вывод для установки - 2 для ответов, 1 для запроса и один общий. Сейчас модель установки перегружена методами-форматтерами, выдающие свой массив данных (по установке и связанными сущностям) для каждого из типов запросов. Количество может расти, задумался о рефракторенге.
Видео вариант либо написать внешний адаптер, который установку приводит в нужный формат - вроде это похоже на ресурс, но это не он. Выше порекомендовали ДТО. Чем больше читаю тем больше торможу про реализацию. Посмотрел библиотеки TheDragonCode на мой взгляд предоставляет что то типа stdClass обертки. Более сложное - слишком навороченное.
Можете пожалуйста ещё подробное рассказать как решить проблему? Есть ощущение, что здесь нужен паттерн адаптер, который реализуют разные методы toArray() в зависимости от места вызова.
Вероятно завтра уже ответ будет. Основная масса народа спит.
Да, спасибо, если удастся тоже подключиться)
Вот зачем тебе пакет?
Обсуждают сегодня