Стужкі і даныя
Асноўны API падзяляе крыніцу даных, адлюстраванне элемента, метаданыя стужкі, структуру вываду і вынік генерацыі.
Feed
DragonCode\LaravelFeed\Feeds\Feed — базавы клас экспарту. Рэалізуйце builder() і перавызначайце толькі патрэбныя стужцы пункты вываду.
abstract public function builder(): Builder
| Метад | Стандартнае значэнне | Кантракт |
|---|---|---|
builder(): Builder | Абстрактны | Вяртае запыт Eloquent, які выкарыстоўваецца як крыніца даных. |
item(Model $model): FeedItem | Новы базавы FeedItem | Пераўтварае адну мадэль у элемент вываду. |
transformers(): array | [] | Дадае імёны класаў пераўтваральнікаў у пачатак для гэтай стужкі. |
chunkSize(): int | 1000 | Памер блока запыту да базы даных. |
perFile(): int | 0 | Колькасць запісаў у файле. Нуль адключае падзел па колькасці. |
maxFiles(): int | 0 | Максімальная колькасць выходных файлаў. Нуль не абмяжоўвае яе. |
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(): FeedFormatEnum | Xml | Вяртае наладжаны фармат вываду. |
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 | ?string | null |
attributes | array | [] |
beforeInfo | bool | true |
Задайце name як null або пусты радок, каб не выводзіць каранёвы элемент. Задайце beforeInfo як false, каб запісаць інфармацыю стужкі перад каранёвым элементам.
Вынік генерацыі
GeneratorService::feed() вяртае GenerationResultData. Уласцівасць толькі для чытання paths змяшчае апублікаваныя файлы ў парадку вываду. Уласцівасць records супастаўляе кожнаму шляху колькасць запісаў у файле.
Метады праграмнай генерацыі і рэгістрацыі пералічаны ў сэрвісах і кантрактах выканання.
FeedFormatEnum
| Варыянт | Значэнне |
|---|---|
Xml | xml |
Json | json |
JsonLines | jsonl |
Csv | csv |
Rss | rss |