php-framework/packages/core-php/TODO.md
Snider 1f1c8d0496 fix: add tier columns to users table, remove app-specific seeder
- Add tier and tier_expires_at columns to users table in create migration
- Remove SystemUserSeeder (moved to host.uk.com as it uses app-specific models)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:20:54 +00:00

1.2 KiB

Core-PHP TODO

Seeder Auto-Discovery

Priority: Medium Context: Currently apps need a database/seeders/DatabaseSeeder.php that manually lists module seeders in order. This is boilerplate that core-php could handle.

Requirements

  • Auto-discover seeders from registered modules (*/Database/Seeders/*Seeder.php)
  • Support priority ordering via property or attribute (e.g., public int $priority = 50)
  • Support dependency ordering via $after or $before arrays
  • Provide base DatabaseSeeder class that apps can extend or use directly
  • Allow apps to override/exclude specific seeders if needed

Example

// In a module seeder
class FeatureSeeder extends Seeder
{
    public int $priority = 10; // Run early

    public function run(): void { ... }
}

class PackageSeeder extends Seeder
{
    public array $after = [FeatureSeeder::class]; // Run after features

    public function run(): void { ... }
}

Notes

  • Current Host Hub DatabaseSeeder has ~20 seeders with implicit ordering
  • Key dependencies: features → packages → workspaces → system user → content
  • Could use Laravel's service container to resolve seeder graph