Перайсці да асноўнага змесціва

Стужкі і даныя

Асноўны API падзяляе крыніцу даных, адлюстраванне элемента, метаданыя стужкі, структуру вываду і вынік генерацыі.

Feed

DragonCode\LaravelFeed\Feeds\Feed — базавы клас экспарту. Рэалізуйце builder() і перавызначайце толькі патрэбныя стужцы пункты вываду.

abstract public function builder(): Builder
МетадСтандартнае значэннеКантракт
builder(): BuilderАбстрактныВяртае запыт Eloquent, які выкарыстоўваецца як крыніца даных.
item(Model $model): FeedItemНовы базавы FeedItemПераўтварае адну мадэль у элемент вываду.
transformers(): array[]Дадае імёны класаў пераўтваральнікаў у пачатак для гэтай стужкі.
chunkSize(): int1000Памер блока запыту да базы даных.
perFile(): int0Колькасць запісаў у файле. Нуль адключае падзел па колькасці.
maxFiles(): int0Максімальная колькасць выходных файлаў. Нуль не абмяжоўвае яе.
header(): stringДэкларацыя XML для XML/RSSЗмесціва перад каранёвым элементам і элементамі стужкі.
footer(): stringПусты радокЗмесціва пасля каранёвага элемента і элементаў стужкі.
root(): ElementDataІмя элемента з імя класаВызначае каранёвы элемент і атрыбуты.
info(): FeedInfoПусты FeedInfoВызначае інфармацыю ўзроўню стужкі.
filename(): stringІмя файла з імя класаВяртае імя выходнага файла адносна дыска.
path($suffix): stringШлях ад адаптараВяртае лакальны або вызначаны адаптарам шлях.
storagePath($suffix): stringІмя файла адносна дыскаВяртае шлях для аперацый са сховішчам.
storage(): FilesystemAdapterДыск publicАтрымлівае і правярае дыск файлавай сістэмы Laravel.
format(): FeedFormatEnumXmlВяртае наладжаны фармат вываду.

Feed выкарыстоўвае Laravel Conditionable і Macroable.

Мэты стужкі

DragonCode\LaravelFeed\Feeds\FeedTarget вызначае адзін незалежна згенераваны вынік. Яго канструктар прымае непусты радковы ключ і неабавязковы масіў параметраў:

public function __construct(public readonly string $key, public readonly array $parameters = [])

Рэалізуйце DragonCode\LaravelFeed\Contracts\HasFeedTargets у класе стужкі, які яўна падтрымлівае мэты. Неабавязковы трэйт DragonCode\LaravelFeed\Concerns\InteractsWithFeedTargets рэалізуе forTarget() і target(), а клас стужкі рэалізуе выяўленне мэт:

МетадКантракт
targets(): iterableЛяніва вяртае кожны даступны FeedTarget для поўных запускаў каманды і раскладу.
findTarget(string $key): ?FeedTargetНепасрэдна вызначае адну яўна ўказаную ў камандзе мэту з тым жа ключом або вяртае null.
forTarget(FeedTarget $target): staticВяртае наладжаную копію і скідае запомненае імя файла.
target(): FeedTargetВяртае наладжаную мэту або кідае LogicException, калі мэта не зададзена.

Канструктар адхіляе пустыя ключы і ключы толькі з прабельных сімвалаў, але не нармалізуе і не ачышчае іншыя значэнні. Параметры мэты непразрыстыя для пакета і серыялізуюцца як здымак задачы чаргі. Ключ з'яўляецца ідэнтычнасцю мэты, таму ён павінен быць стабільным і ўнікальным у межах класа стужкі. Глядзіце наладжванне асобных выходных файлаў і выбар у камандзе.

FeedItem і FeedInfo

FeedItem атрымлівае бягучую мадэль Eloquent. Яго стандартныя паводзіны:

  • name() вяртае базавае імя класа мадэлі ў kebab case;
  • attributes() вяртае пусты масіў;
  • toArray() вяртае масіў мадэлі.

FeedInfo::toArray() вяртае пусты масіў. Абодва класы выкарыстоўваюць Conditionable і Macroable; пашырайце іх, калі вываду патрэбна яўная схема.

ElementData

ElementData — аб'ект толькі для чытання з трыма ўласцівасцямі канструктара:

УласцівасцьТыпСтандартнае значэнне
name?stringnull
attributesarray[]
beforeInfobooltrue

Задайце name як null або пусты радок, каб не выводзіць каранёвы элемент. Задайце beforeInfo як false, каб запісаць інфармацыю стужкі перад каранёвым элементам.

Вынік генерацыі

GeneratorService::feed() вяртае GenerationResultData. Уласцівасць толькі для чытання paths змяшчае апублікаваныя файлы ў парадку вываду. Уласцівасць records супастаўляе кожнаму шляху колькасць запісаў у файле.

Метады праграмнай генерацыі і рэгістрацыі пералічаны ў сэрвісах і кантрактах выканання.

FeedFormatEnum

ВарыянтЗначэнне
Xmlxml
Jsonjson
JsonLinesjsonl
Csvcsv
Rssrss

Глядзіце таксама