seedersPath = __DIR__ . '/../../database/seeders'; } /** * Execute the command */ public function execute(string $seeder = null): void { if ($seeder) { $this->runSeeder($seeder); } else { $this->runAllSeeders(); } } /** * Run all seeders */ private function runAllSeeders(): void { echo "Running database seeders...\n"; $seederFiles = glob($this->seedersPath . '/*.php'); foreach ($seederFiles as $file) { $filename = basename($file); $className = $this->getSeederClassName($filename); require_once $file; if (class_exists($className)) { $seeder = new $className(); $seeder->run(); } } echo "Seeding completed successfully!\n"; } /** * Run specific seeder */ private function runSeeder(string $seederName): void { $file = $this->seedersPath . '/' . $seederName . '.php'; if (!file_exists($file)) { echo "Error: Seeder '{$seederName}' not found\n"; return; } $className = $this->getSeederClassName($seederName . '.php'); require_once $file; if (!class_exists($className)) { echo "Error: Seeder class '{$className}' not found\n"; return; } echo "Running seeder: {$seederName}\n"; $seeder = new $className(); $seeder->run(); echo "Seeder completed successfully!\n"; } /** * Get seeder class name */ private function getSeederClassName(string $filename): string { $name = pathinfo($filename, PATHINFO_FILENAME); return "Database\\Seeders\\{$name}"; } }