@kanuhamru

Yii2: XML-RPC как ActiveRecord — как реализовать?

Есть несколько блогов на WordPress. Пишу приложение, в котором нужно реализовать возможность создавать индивидуальные ссылки на любые статьи любого блога. Нужно для подсчета статистики, какой пользователь, сколько посетителей привлек.

Для удобства пользователей, список статей нужно выводить прямо в приложении (выбрал блог, затем статью, нажал "Создать ссылку", получил свой индивидуальный URL).

Статьи получаю через расширение yii2-wordpress (оно использует XML-RPC). С этим проблем нет, как и с созданием ссылки.

Хочется реализовать список статей в виде ActiveRecord. Чтобы работать со статьями как будто они хранятся в БД, вообщем как с обычным ActiveRecord (только чтение).

Нужно будет сделать связи (relations) между моделями:
Link->getPage()
Page->getSite()
Site->getPages()
Далее выводить список моделей Page через стандартный GridView с возможностью сортировки и фильтрации.

Вопрос в том как это грамотно реализовать, чтобы модель Page вела себя как обычный ActiveRecord несмотря на то что данные берутся с удаленного сервера, а не из БД?
  1. От какого класса наследовать модель Post или какой интерфейс реализовывать, чтобы она вела себя как обычный ActiveRecord?
  2. Какие методы реализовывать, учитывая что нужно только чтение, а создавать, редактировать и удалять не понадобиться?

Далее нужно будет аналогично реализовать связанные с Post модели: Tag, Category, Author, источником которых так же будет XML-RPC.

Буду рад любым подсказкам.
  • Вопрос задан
  • 448 просмотров
Решения вопроса 1
padlyuck
@padlyuck
Возможно вам поможет доклад Андрея Коненкова в Иваново 2016 Yii2: Работа с внешним API как с локальной БД.
слайды https://docs.google.com/presentation/d/1YroLIEDhax...
код https://github.com/andkon13/api_record
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@zhainar
Гуглю за вас
Посмотреть как строиться модель activerecord на несколько уровней ниже (связь с бд, получение данных, преобразование в данных в объект), написать свой конструктор. Но не проще (интереснее) ли самому написать свою модель.
Ответ написан
Комментировать
@kanuhamru Автор вопроса
Нашел реализацию ActiveRecord, в которой используется вместо БД - файлы (не SQLite). Думаю там найду большинство ответов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы