Skip to content

Commit 1b068d1

Browse files
committed
new: Db Seeder module
1 parent abb231f commit 1b068d1

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

framework/Console/Command.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ public static function run($argv)
4444
case 'make:model':
4545
ModelCommand::make($argv);
4646
break;
47+
48+
case 'db:seed':
49+
SeederCommand::runDatabaseSeeder();
50+
break;
51+
52+
case 'db:seeder': // for specific seeder
53+
SeederCommand::run($argv);
54+
break;
55+
4756
case 'generate:api-key':
4857
ApiKey::generate();
4958
break;

framework/Console/SeederCommand.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace LaraCore\Framework\Console;
4+
5+
use LaraCore\Database\Seeders\DatabaseSeeder;
6+
use LaraCore\Framework\Console\Log;
7+
8+
class SeederCommand
9+
{
10+
public static function run($argv)
11+
{
12+
if (!isset($argv[2])) {
13+
Log::warning("Usage: php laracore db:seed <seeder>");
14+
exit(1);
15+
}
16+
17+
$seeder = $argv[2];
18+
$seeder = "LaraCore\\Database\\Seeders\\$seeder";
19+
20+
if (!class_exists($seeder)) {
21+
Log::warning("Seeder $seeder does not exist");
22+
exit(1);
23+
}
24+
25+
$seeder = new $seeder();
26+
$seeder->run();
27+
}
28+
29+
public static function runDatabaseSeeder()
30+
{
31+
$databaseSeeder = new DatabaseSeeder();
32+
$databaseSeeder->run();
33+
34+
Log::info("Database seeded successfully");
35+
}
36+
37+
38+
}

framework/Seeders/Seeder.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace LaraCore\Framework\Seeders;
4+
5+
abstract class Seeder
6+
{
7+
abstract public function run();
8+
9+
public function call($seeder)
10+
{
11+
$seeder = new $seeder();
12+
$seeder->run();
13+
}
14+
15+
public function callMany($seeders)
16+
{
17+
foreach ($seeders as $seeder) {
18+
$this->call($seeder);
19+
}
20+
}
21+
public function callOne($seeder)
22+
{
23+
$this->call($seeder);
24+
}
25+
public function callManyThrough($seeder)
26+
{
27+
$this->call($seeder);
28+
}
29+
}

0 commit comments

Comments
 (0)