Перейти к основному содержимому

Частые вопросы

Короткие ответы на частые вопросы о настройке, генерации, хранилище, форматах и памяти.

Может ли Laravel Feeds экспортировать миллионы записей?

Да. Пакет читает результаты Eloquent блоками и записывает вывод постепенно. Оставляйте builder() ленивым, не вызывайте get() или toArray() для всего результата и настраивайте chunkSize() после измерения памяти и нагрузки на базу.

Смотрите производительность на больших наборах данных.

Какой формат выбрать?

Используйте контракт, который требует потребитель. XML и RSS поддерживают иерархические директивы, JSON сохраняет вложенные данные, JSON Lines подходит для построчной обработки, а CSV требует стабильную схему столбцов.

Смотрите поддерживаемые форматы.

Может ли один фид создать несколько файлов?

Да, но выбирайте механизм по причине различий между файлами:

  • Используйте perFile() и при необходимости maxFiles(), чтобы разделить один набор данных на последовательные части с фиксированным количеством записей.
  • Используйте цели фида, когда нужна разбивка на файлы по партнёрам, магазинам, локалям или другим бизнес-ключам.
  • Совмещайте оба механизма, если вывод каждого партнёра также нужно делить на несколько частей по количеству записей.

Полный пример приведён в рецепте «Несколько целевых файлов фида».

Можно ли хранить фиды в S3 или на другом удалённом диске?

Да, если настроенный диск Laravel возвращает доступный для записи FilesystemAdapter. Удалённое перемещение может быть реализовано как копирование и удаление, поэтому атомарная замена не гарантируется.

Смотрите поддерживаемые диски.

Почему отключённый фид был выполнен?

Передача идентификатора в feed:generate запускает фид даже при неактивной записи. Команда без идентификатора пропускает неактивные записи.

Смотрите генерацию одного фида.

Как пропустить необязательное поле?

Верните DragonCode\LaravelFeed\Data\OptionalData или Spatie\LaravelData\Optional как значение поля. CSV сохраняет столбец и записывает пустое значение; объектные форматы и XML пропускают поле.

Смотрите необязательные значения.

Смотрите также