Перейти до основного вмісту
Версія: 1.x

← Попередня · Назад до README · Наступна →

Підтримувані формати

  • xml — створює фіди у форматі XML.
  • json — створює фіди у форматі JSON.
  • jsonl — створює фіди у форматі JSON Lines.
  • csv — створює фіди у форматі CSV.
  • rss — створює фіди у форматі RSS Atom.

Типово використовується формат xml.

Параметри конвертера для окремого фіду​

Додайте DragonCode\LaravelFeed\Attributes\Config до класу фіду, щоб перевизначити налаштування його конвертера:

use App\Models\User;
use DragonCode\LaravelFeed\Attributes\Config;
use DragonCode\LaravelFeed\Enums\FeedFormatEnum;
use DragonCode\LaravelFeed\Feeds\Feed;
use Illuminate\Database\Eloquent\Builder;

#[Config('delimiter', ',')]
#[Config('enclosure', "'")]
#[Config('lineEnding', "\r\n")]
class UserFeed extends Feed
{
protected FeedFormatEnum $format = FeedFormatEnum::Csv;

public function builder(): Builder
{
return User::query();
}
}

Повторюйте атрибут для кожного налаштування. Якщо ім’я повторюється в одному класі, використовується останній оголошений атрибут.

Імена налаштувань відповідають іменам параметрів конструктора конвертера. Лише передані значення перевизначають конфігурацію застосунку; інші налаштування зберігають свої налаштовані значення. lineEnding відповідає feeds.converters.csv.line_ending.

ФорматПідтримувані ключі
csvdelimiter, enclosure, escape, lineEnding
jsonoptions, pretty
jsonloptions
xml, rsspretty

Параметри батьківського фіду успадковуються, а дочірні ключі перевизначають батьківські. Використовуйте лише ключі, які підтримує обраний формат; непідтримувані ключі викликають InvalidArgumentException. Атрибут не змінює конфігурацію застосунку чи інші фіди.

JSON Lines завжди записує один елемент на рядок, а JSON_PRETTY_PRINT видаляється з options. Користувацькі прив’язки контейнера мають враховувати передані параметри конструктора.

Користувацький DragonCode\LaravelFeed\Helpers\ConverterHelper, який перевизначає get() або resolve(), має також перевизначити захищений метод resolveWithOptions(FeedFormatEnum $format, array $options = []): Converter, щоб використовувати параметри окремого фіду. Передайте $options у Container::make(), щоб налаштування застосовувалися до ініціалізації конвертера. Інакше розв’язання конвертера для фіду з параметрами викликає LogicException; фіди без параметрів зберігають попередню поведінку допоміжного класу.

Дивіться також​