Початок роботи
Установіть пакет, визначте запит 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. Змініть потрібне значення в класі фіду.