Bhitti Documentation

Developer documentation for the lightweight, PHP-FPM-oriented Bhitti framework.

View the Project on GitHub sayedsahin/bhitti-doc

Database Seeding

Bhitti seeders are plain PHP files that return a closure. There is no base seeder class, seeder tracking table, or hidden execution graph.

Create a seeder

php run create:seeder users

This creates:

database/seeders/users.seeder.php

Template:

<?php

declare(strict_types=1);

return static function (): void {
    //
};

The command also registers the filename in database/seeders/database.seeder.php unless that filename already appears in the registry text.

Seeder registry

The registry returns filenames directly, in execution order:

<?php

return [
    'roles.seeder.php',
    'users.seeder.php',
];

You can temporarily disable a registered seeder by commenting it out:

return [
    'roles.seeder.php',
    // 'users.seeder.php',
];

create:seeder preserves an existing commented entry; it does not uncomment or duplicate it.

Write a seeder

<?php

declare(strict_types=1);

return static function (): void {
    db()->table('roles')->updateOrInsert(
        ['name' => 'admin'],
        ['name' => 'admin']
    );
};

Prefer idempotent seeders when the same seeder may be run more than once.

Run registered seeders

php run db:seed

Bhitti executes active entries in database.seeder.php from top to bottom.

Run one seeder

php run db:seed --filename=users

or:

php run db:seed --filename=users.seeder.php

Direct execution does not require the seeder to be active in database.seeder.php.