Пакет Feeds для Laravel, створений
Андрієм Хеллдаром, пропонує простий і швидкий спосіб експорту великих обсягів даних у фіди для ринків та інших споживачів. Основою цього пакета є
фіди, які можна створити за допомогою команди
make:feed у Artisan. Після створення фіда ви можете визначити, як він працюватиме:
namespace App\Feeds;
use App\Feeds\Items\UserFeedItem;
use App\Models\User;
use DragonCode\LaravelFeed\Enums\FeedFormatEnum;
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
{
protected FeedFormatEnum $format = FeedFormatEnum::Json;
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);
}
}
Разом із класом
UserFeed існує також клас
UserFeedItem, який визначає кожен елемент фіда:
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,
];
}
}
Ці фіди генеруються за допомогою команди
feed:generate, яка створює фіди у статичних файлах (за замовчуванням зберігаються у папці
public). Документація містить
рецепти для поширених форматів, таких як XML-сайти, RSS та інші.
# Основні можливості
- Ділення запитів до бази даних на частини
- Режим чернетки під час обробки
- Просте відображення властивостей
- Генерація фідів, сайтів та інших форм
💻 Розпочати роботу з цим пакетом можна на GitHub:
TheDragonCode/laravel-feeds.
📖 Для установки та налаштування цього пакета ознайомтеся з
документацією