Populate — це суперзаряджений сидер для Laravel

Перекладено ШІ 2 Laravel News 03 червня, 2026

Зануртеся у світ зручності та ефективності з пакетом Laragear Populate для Laravel! Ця стаття розкриває, як можна вдосконалити систему наповнення бази даних, організувавши якомога більше функцій, включаючи продовження невдалих спроб заповнення. Чи готові ви дізнатися більше?

Пакет Laragear Populate від @DarkGhostHunter – це вдосконалений сідер для застосунків на Laravel. Він пропонує корисні функції поверх стандартної системи заповнення бази даних у Laravel, включаючи можливість продовження невдалих спроб заповнення:

Модифікувавши стандартний Seeder з покращеною версією, ми можемо підвищити ефективність системи заповнення, реалізуючи покрокове заповнення, пропуск та можливість продовження заповнювальних процесів без втрати звичних функцій, забезпечуючи сумісність з класичними класами заповнювачів.

Сідери Populate використовують кроки заповнення, які представлені публічним методом, що починається з seed, або методом з атрибутом SeedStep. Це означає, що ваш сідер може бути більш організованим відповідно до типу даних, які ви хочете заповнити. Наступний приклад з README пакета демонструє кілька методів, які будуть викликані, а також можливість використання залежнісного вприскування:

namespace Database\Seeders;
 
use Database\Factories\UserFactory;
use Laragear\Populate\Attributes\SeedStep;
use Laragear\Populate\Seeder;
use App\TicketGenerator;
 
class UserSeeder extends Seeder
{
    public function __construct(protected TicketGenerator $ticket)
    {
        // ...
    }
 
    public function seedNormalUsers(UserFactory $users)
    {
        $users->count(5)->create(['ticket' => $this->ticket->generate()]);
    }
 
    public function seedVipUsers(UserFactory $users)
    {
        $users->vip()->count(3)->create();
    }
 
    #[SeedStep]
    public function bannedUsers(UserFactory $users)
    {
        $users->banned()->count(2)->create(['ticket' => $this->ticket->generate()]);
    }
}

Окрім виконання кроків заповнення, сідери, що використовують Populate, можуть визначати методи before(), after(), onError(), а також користуватися методом skip() під час виклику before() для пропуску кроку заповнення на основі знайдених умов:

if (User::query()->banned()->exists()) {
    $this->skip();
}

# Основні особливості

  • Модульна структура заповнення: Організуйте свої сідери в окремі методи в межах одного класу, що дозволяє чітко розділяти різні набори даних (наприклад, seedNormalUsers(), seedBannedUsers()).
  • Продовжуване заповнення: Дозволяє продовжувати процеси заповнення, спрощуючи управління та відновлення складних операцій без надмірностей.
  • Покращена читабельність та супроводжуваність: Структуруючи сідери у специфічні методи, код стає більш читабельним та легшим для підтримки, особливо у великих проектах.
  • Інтеграція з Seeder Laravel: Розширює стандартні функції заповнення Laravel, забезпечуючи сумісність та використання існуючих можливостей.
  • Підтримка PHP 8 і Laravel 10+: Створено для безперешкодної роботи з сучасними версіями PHP та Laravel, що гарантує актуальні практики і сумісність.

У README пакета міститься детальна документація про всі можливості сідерів Laragear Populate. Ви можете дізнатися більше про цей пакет, отримати повні інструкції з установки та переглянути код на GitHub.

Популярні

Інше, що варто прочитати

173 Оновлено 02 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

30 Оновлено 02 червня, 2026

Інтеграція Laravel Socialite з бібліотекою Google Client PHP

Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті

21 Оновлено 02 червня, 2026

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту