PHP code example of laragear / populate

1. Go to this page and download the library: Download laragear/populate library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

laragear / populate example snippets


use Laragear\Populate\Seeder;

class UserSeeder extends Seeder
{
    public function seedNormalUsers()
    {
        //
    }
    
    public function seedBannedUsers()
    {
        
    }
}

namespace Database\Seeders:

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Laragear\Populate\Seeder;

class UserSeeder extends Seeder
{
    /**
     * Run logic before executing the seed steps.
     */
    public function before(): void
    {
        // if (false) {
        //     $this->skip();
        // }
    }

    /**
     * Populate the database with records.
     */
    public function seed(): void
    {
        //
    }

    /**
     * Run logic after executing the seed steps.
     */
    public function after(): void
    {
        //
    }
}

> namespace Database\Seeders;
> 
> // use Illuminate\Database\Seeder;
> use Laragear\Populate\Seeder;
> 
> class UserSeeder extends Seeder
> {
>     //..
> }
> 

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()]);
    }
}

use Database\Factories\UserFactory;

public function seedNormalUsers(UserFactory $users)
{
    return $users->count(5);
}

use Laragear\Populate\Attributes\SeedStep;

#[SeedStep(as: 'Seed non-authorized users')]
public function bannedUsers(UserFactory $users)
{
    $users->banned()->count(2)->create(['ticket' => $this->ticket->generate()]);
}

use Database\Factories\UserFactory;
use Database\Factories\CommentFactory;
use Laragear\Populate\Seeder;

class UserSeeder extends Seeder
{
    // ...
  
    public function seedMutedUsers(UserFactory $factory)
    {
        $users = $factory->muted()->create(3);
        
        $this->call(CommentSeeder::class, [
            'seedModeratedComment' => ['users' => $users],
        ]);
    }
}

class CommentSeeder extends Seeder
{
    public function seedModeratedComment(CommentFactory $comments, $users)
    {
        foreach ($users as $user) {
            $comments->for($user)->moderated()->create();
        }
    }
}

use Illuminate\Contracts\Config\Repository;use Illuminate\Contracts\Routing\UrlGenerator;
use Laragear\Populate\Seeder;

class CommentSeeder extends Seeder
{
    public function before(UrlGenerator $url)
    {
        // ...
    }
    
    public function after(Repository $config)
    {
        // ...
    }
}

use Laragear\Populate\Seeder;

class CommentSeeder extends Seeder
{
    public function onError($exception)
    {
        // ...
    }
}

public function onError($exception)
{
    return new RuntimeException('The seeder failed', previous: $exception);
}

use App\Models\User;
use Database\Factories\UserFactory;

public function seedBannedUsers(UserFactory $user)
{
    if (User::query()->banned()->exists()) {
        $this->skip();
    }
    
    // ...
}

use App\Models\User;

if (User::query()->banned()->exists()) {
    $this->skip('There are already banned users in the database');
}

use App\Models\Comment;
use Laragear\Populate\Seeder;

class CommentSeeder extends Seeder
{
    public function before()
    {
        if (Comment::query()->exists()) {
            $this->skip('There are already comments in the database')
        }
    }
}

use Laragear\Populate\Attributes\SeedStep;

#[SeedStep(retryUnique: false)]
public function bannedUsers
{
    // ...
}

use App\Models\Comment;
use Laragear\Populate\Seeder;

class CommentSeeder extends Seeder
{
    public bool $usesTransactions = false;

    public function seedGuestComments()
    {
        if (Comment::query()->guest()->exists()) {
            $this->skip('There is already guest comments in the database');
        }
        
        // ...
    }

    // ...
}

use App\Models\Comment;
use Laragear\Populate\Seeder;

class CommentSeeder extends Seeder
{
    public function seedGuestComments()
    {
        $factory = Comment::factory();
        
        // ...
    }

    // ...
}
shell
php artisan make:super-seeder UserSeeder
shell
php artisan vendor:publish --provider=Laragear\Populate\PopulateServiceProvider --tag=stubs
shell
php artisa db:seed --continue