Pular para o conteúdo principal

Primeiros passos

Instale o pacote, defina uma consulta Eloquent e a estrutura do item e gere um arquivo de feed. Em uma aplicação Laravel existente, o primeiro export funcional leva cerca de cinco minutos.

Pré-requisitos

  • PHP 8.2 ou uma versão 8.x posterior aceita pelo Composer
  • Laravel 11.x, 12.x ou 13.x
  • Banco de dados e disco do sistema de arquivos configurados

Instalar e preparar

composer require dragon-code/laravel-feeds
php artisan vendor:publish --tag="feeds"
php artisan migrate
php artisan make:feed User --item

O gerador cria as classes do feed e do item. Ele também cria a alteração no banco que registra o feed. Execute essa migration antes da primeira geração caso ela tenha sido criada depois do comando migrate anterior.

Definir a fonte dos dados

Retorne um Builder do Eloquent para que os registros sejam lidos em lotes.

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);
}
}

Definir cada item

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,
];
}
}

Gerar o arquivo

php artisan feed:generate

O comando informa o status de cada feed; a saída normal do console não inclui os caminhos dos arquivos gerados. As classes de feed usam XML e o disco public por padrão. Altere qualquer um desses valores na classe do feed.

Próximos passos