Erste Schritte
Installieren Sie das Paket, definieren Sie eine Eloquent-Abfrage und die Struktur eines Elements und erzeugen Sie anschließend eine Feed-Datei. In einer vorhandenen Laravel-Anwendung dauert der erste funktionierende Export etwa fünf Minuten.
Voraussetzungen
- PHP
8.2oder eine neuere, von Composer akzeptierte Version aus der Reihe8.x - Laravel
11.x,12.xoder13.x - Eine konfigurierte Datenbank und ein Dateisystem-Datenträger
Installation und Vorbereitung
composer require dragon-code/laravel-feeds
php artisan vendor:publish --tag="feeds"
php artisan migrate
php artisan make:feed User --item
Der Generator erstellt die Feed- und Elementklassen. Außerdem erstellt er die Datenbankänderung zur Registrierung des Feeds. Führen Sie diese Migration vor der ersten Generierung aus, falls sie nach dem vorherigen migrate-Befehl erzeugt wurde.
Datenquelle definieren
Geben Sie einen Eloquent-Builder zurück, damit Datensätze in Chunks gelesen werden können.
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);
}
}
Jedes Element definieren
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,
];
}
}
Datei erzeugen
php artisan feed:generate
Der Befehl meldet den Status jedes Feeds; die normale Konsolenausgabe enthält keine Pfade zu erzeugten Dateien. Feed-Klassen verwenden standardmäßig XML und den Datenträger public. Ändern Sie den jeweiligen Wert in der Feed-Klasse.