@4ch23

Как в своём пакете composer хранить данные?

Где composer пакеты хранят данные и хранят ли?

Есть задача - создать пакет, который будет использовать и периодически обновлять (из чужого API) табличные данные, встал вопрос - где хранить эти данные? Принуждать выполнять миграции по установке в свою бд при установке? Использовать файловую бд какую-то? Нигде не могу информации про то, позволено ли composer пакетам расширяться в размерах во время работы, например (вместе с расширением базы)

Буду очень благодарен если поможете с вопросами выше, и ещё больше если подскажете конкретные удобные инструменты (бд, orm, ресурсы про свои composer пакеты и т.д)

Бонус-вопрос: Подключать в виде зависимости к пакету yii2 - будет слишком плохой тон?

Спасибо!
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Данные должны храниться вне директории пакета, потому что vendor при деплое часто сносится подчистую.
Следовательно, лежать они могут в любом месте, пакет должен давать возможность это место указывать.
Будет ли это БД или что-то иное должен определить пакет, а его пользователи должны реализовывать этот контракт. Можно сделать пакеты-адаптеры (для mysql, для файлового хранения и т.п.), чтобы пользователь мог выбирать способ хранения данных.

Подключать в виде зависимости к пакету yii2 - будет слишком плохой тон?
Если ваш пакет предполагается фреймворко-независимым, то да, так себе решение. Если же он тесно связан с Yii2, то почему бы и нет...
Ответ написан
Комментировать
Нигде. В пакете описываете интерфейсы для хранилища из которого будете данные собирать, и хранилища в которое данные будете класть. А уже клиент пусть заботится о реализации исходя из своих предпочтений.

Хранение описанное в вопросе - похоже на кеширование, так что можно попробовать использовать psr/cache интерфейсы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект