← 이전 · README로 돌아가기 · 다음 →
피드 생성
피드 클래스를 만들려면 make:feed 콘솔 명령을 사용하십시오.
php artisan make:feed <name>
이 명령은 피드 파일을 생성합니다. 예: app/Feeds/UserFeed.php.
이 콘솔 명령은 피드 클래스와 함께 항목 및 정보 클래스도 만들 수 있습니다. --item과 --info 옵션을 사용하십시오.
# Create a feed class and info class
php artisan make:feed <name> --info
# Create a feed class and item class
php artisan make:feed <name> --item
# Create a feed class, item class, and info class
php artisan make:feed <name> --item --info
단축 옵션도 사용할 수 있습니다.
# Create a feed class and item class
php artisan make:feed <name> -t
# Create a feed class and info class
php artisan make:feed <name> -i
# Create a feed class, item class, and info class
php artisan make:feed <name> -it
피드를 만들면 데이터베이스에 피드를 추가하기 위한 operation 또는 마이그레이션도 생성됩니다.
프로젝트가 Laravel Deploy Operations를 사용하면 operation 클래스가 생성되고, 그렇지 않으면 마이그레이션 클래스가 생성됩니다.
이는 데이터베이스에 피드 정보를 추가하고 관리하는 데 필요합니다.
피드 채우기
피드
기본 피드 클래스를 채우십시오. 예:
namespace App\Feeds;
use App\Feeds\Items\UserFeedItem;
use App\Models\User;
use DragonCode\LaravelFeed\Feeds\Feed;
use DragonCode\LaravelFeed\Feeds\Items\FeedItem;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class UserFeed extends Feed
{
public function builder(): Builder
{
return User::query()
->whereNotNull('email_verified_at')
->where('created_at', '>', now()->subYear());
}
public function item(Model $model): FeedItem
{
return new UserFeedItem($model);
}
}
피드 항목
피드 항목 클래스를 채우십시오. 예:
namespace App\Feeds\Items;
use DragonCode\LaravelFeed\Feeds\Items\FeedItem;
/** @property-read \App\Models\User $model */
class UserFeedItem extends FeedItem
{
public function toArray(): array
{
return [
'name' => $this->model->name,
'email' => $this->model->email,
];
}
}
선택적 값
값을 사용할 수 없을 때 필드를 생략하려면 해당 값으로 DragonCode\LaravelFeed\Data\OptionalData 인스턴스를 반환하십시오.
namespace App\Feeds\Items;
use DragonCode\LaravelFeed\Data\OptionalData;
use DragonCode\LaravelFeed\Feeds\Items\FeedItem;
class UserFeedItem extends FeedItem
{
public function toArray(): array
{
return [
'id' => $this->model->id,
'name' => $this->model->name,
'cityId' => $this->model->city?->id ?? new OptionalData,
'createdAt' => $this->model->created_at,
'updatedAt' => $this->model->updated_at ?? new OptionalData,
];
}
}
선택적 필드는 일반 중첩 필드를 포함하여 JSON 및 JSON Lines 객체와 XML 및 RSS 요소에서 제거됩니다. CSV는 열 위치를 유지하고 빈 필드를 기록합니다.
애플리케이션에서 Spatie Laravel Data를 사용한다면 대신 Spatie\LaravelData\Optional을 반환할 수 있습니다. 두 선택적 값 클래스는 모두 자동으로 처리됩니다.
use Spatie\LaravelData\Optional;
'updatedAt' => $this->model->updated_at ?? Optional::create(),
별도 출력 파일
서로 다른 비즈니스 조건에 따라 별도 파일을 생성하는 기능은 고급 출력 시나리오입니다. 별도 출력 파일 가이드를 읽은 다음, 완전한 예제로 여러 대상에 맞춘 피드 파일 레시피를 사용하십시오.
파일 형식
사용 가능한 형식 목록은 지원 형식 페이지에서 확인할 수 있습니다.
피드는 여러 형식으로 생성할 수 있습니다. 피드 클래스는 의도된 형식으로만 올바르게 내보낼 수 있습니다. 이는 디렉티브와 기타 형식별 특성 때문입니다.
필요한 형식을 적용하려면 피드 클래스의 $format 속성을 재정의하십시오.
namespace App\Feeds;
use DragonCode\LaravelFeed\Enums\FeedFormatEnum;
use DragonCode\LaravelFeed\Feeds\Feed;
use Illuminate\Database\Eloquent\Builder;
class UserFeed extends Feed
{
protected FeedFormatEnum $format = FeedFormatEnum::Json;
public function builder(): Builder
{
//
}
}

