본문으로 건너뛰기

피드 및 데이터

핵심 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파일당 레코드 수입니다. 0이면 개수에 따른 분할을 끕니다.
maxFiles(): int0최대 출력 파일 수입니다. 0이면 제한이 없습니다.
header(): stringXML/RSS용 XML 선언루트와 항목 앞에 기록할 내용입니다.
footer(): string빈 문자열루트와 항목 뒤에 기록할 내용입니다.
root(): ElementData클래스에서 파생한 요소 이름루트 요소와 속성을 정의합니다.
info(): FeedInfoFeedInfo피드 수준 정보를 정의합니다.
filename(): string클래스에서 파생한 파일 이름디스크 기준 출력 파일 이름을 반환합니다.
path($suffix): string어댑터가 해석한 경로로컬 또는 어댑터가 해석한 경로를 반환합니다.
storagePath($suffix): string디스크 기준 파일 이름저장소 작업에 사용할 경로를 반환합니다.
storage(): FilesystemAdapterpublic 디스크Laravel 파일시스템 디스크를 해석하고 검증합니다.
format(): FeedFormatEnumXml구성된 출력 형식을 반환합니다.

Feed는 Laravel의 ConditionableMacroable을 사용합니다.

피드 대상

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()는 빈 배열을 반환합니다. 두 클래스 모두 ConditionableMacroable을 사용합니다. 출력에 명시적인 스키마가 필요하면 확장하십시오.

ElementData

ElementData는 세 가지 생성자 속성을 가진 읽기 전용 객체입니다.

속성타입기본값
name?stringnull
attributesarray[]
beforeInfobooltrue

루트 요소를 생략하려면 namenull 또는 빈 문자열로 설정하십시오. 피드 정보를 루트 앞에 쓰려면 beforeInfofalse로 설정하십시오.

생성 결과

GeneratorService::feed()GenerationResultData를 반환합니다. 읽기 전용 paths 속성에는 게시된 파일이 출력 순서대로 들어 있습니다. records는 각 경로를 해당 파일에 기록된 레코드 수와 연결합니다.

프로그래밍 방식의 생성 및 등록 메서드는 런타임 서비스 및 계약에 정리되어 있습니다.

FeedFormatEnum

케이스
Xmlxml
Jsonjson
JsonLinesjsonl
Csvcsv
Rssrss

관련 문서