Начало работы
Установите пакет, задайте запрос Eloquent и структуру элемента, затем сгенерируйте файл фида. В готовом приложении Laravel первый рабочий экспорт занимает около пяти минут.
Требования
- PHP
8.2или более новая версия8.x, допустимая для Composer - Laravel
11.x,12.xили13.x - Настроенные база данных и диск файловой системы
Установка и подготовка
composer require dragon-code/laravel-feeds
php artisan vendor:publish --tag="feeds"
php artisan migrate
php artisan make:feed User --item
Генератор создаст классы фида и элемента. Он также создаст изменение базы данных для регистрации фида. Если оно появилось после предыдущей команды migrate, запустите миграции ещё раз перед первой генерацией.
Источник данных
Возвращайте построитель запроса Eloquent, чтобы записи читались блоками.
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,
];
}
}
Генерация файла
php artisan feed:generate
Команда показывает статус каждого фида; обычный консольный вывод не содержит путей к сгенерированным файлам. Классы фидов по умолчанию используют формат XML и диск public. Измените нужное значение в классе фида.