Skip to content

Commit 61b6b9a

Browse files
committed
Upgrade seeder concept
1 parent d29656f commit 61b6b9a

4 files changed

Lines changed: 28 additions & 22 deletions

File tree

src/Console/Command.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
use Bow\Console\Command\Generator\GenerateServiceCommand;
2121
use Bow\Console\Command\Generator\GenerateSessionCommand;
2222
use Bow\Console\Command\Generator\GenerateAppEventCommand;
23-
use Bow\Console\Command\Generator\GenerateWorkerCommand;
2423
use Bow\Console\Command\Generator\GenerateExceptionCommand;
2524
use Bow\Console\Command\Generator\GenerateMessagingCommand;
2625
use Bow\Console\Command\Generator\GenerateMigrationCommand;
@@ -30,6 +29,7 @@
3029
use Bow\Console\Command\Generator\GenerateNotificationCommand;
3130
use Bow\Console\Command\Generator\GenerateConfigurationCommand;
3231
use Bow\Console\Command\Generator\GenerateEventListenerCommand;
32+
use Bow\Console\Command\Generator\GenerateJobCommand;
3333
use Bow\Console\Command\Generator\GenerateRouterResourceCommand;
3434

3535
class Command extends AbstractCommand
@@ -41,7 +41,7 @@ class Command extends AbstractCommand
4141
*/
4242
private array $commands = [
4343
"clear" => ClearCommand::class,
44-
"seed:table" => SeederCommand::class,
44+
"seed:file" => SeederCommand::class,
4545
"seed:all" => SeederCommand::class,
4646
"migration:migrate" => MigrationCommand::class,
4747
"migration:rollback" => MigrationCommand::class,
@@ -57,7 +57,7 @@ class Command extends AbstractCommand
5757
"add:validation" => GenerateValidationCommand::class,
5858
"add:event" => GenerateAppEventCommand::class,
5959
"add:listener" => GenerateEventListenerCommand::class,
60-
"add:producer" => GenerateWorkerCommand::class,
60+
"add:producer" => GenerateJobCommand::class,
6161
"add:command" => GenerateConsoleCommand::class,
6262
"add:message" => GenerateMessagingCommand::class,
6363
"run:console" => ReplCommand::class,

src/Console/Command/Generator/GenerateMigrationCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ public function run(string $model): void
6161
]);
6262

6363
// Print console information
64-
echo Color::green("The migration {$filename} file has been successfully created") . "\n";
64+
echo Color::green("The migration {$this->setting->getMigrationDirectory()}/{$filename} file has been successfully created") . "\n";
6565
}
6666
}

src/Console/Command/SeederCommand.php

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@ public function all(): void
2424
$seeder_files = [];
2525

2626
foreach (glob($this->setting->getSeederDirectory() . '/*.php') as $seeder_file) {
27-
$seeder_files[$seeder_file] = explode('.', basename($seeder_file))[0];
27+
$seeder_files[$seeder_file] = $this->normalizeClassName(explode('.', basename($seeder_file))[0]);
2828
}
2929

3030
foreach ($seeder_files as $seeder_file => $seeder_class_name) {
31-
echo Color::green("Seeding: $seeder_file");
32-
3331
$this->make($seeder_file, $seeder_class_name);
3432
}
3533
}
@@ -44,13 +42,11 @@ private function make(string $seed_filename, string $seeder_class_name): void
4442
{
4543
try {
4644
include_once $seed_filename;
47-
$time = explode('-', $seeder_class_name)[0];
48-
$seeder_class_name = str_replace($time, '', $seeder_class_name);
49-
$seeder_class_name = Str::camel($seeder_class_name);
5045
(new $seeder_class_name())->run();
46+
echo Color::green("Seeding completed: $seed_filename\n");
5147
} catch (Exception $e) {
52-
echo Color::red($e->getMessage());
5348
echo Color::red("Seeding failed for: $seed_filename");
49+
echo Color::red("\n" . $e->getMessage());
5450
}
5551
}
5652

@@ -66,21 +62,31 @@ public function file(?string $seeder_class_name = null): void
6662
$this->throwFailsCommand('Specify the seeder file name', 'help seed');
6763
}
6864

69-
$seeder_file = [];
65+
$seeder_files = [];
7066

7167
foreach (glob($this->setting->getSeederDirectory() . '/*.php') as $seeder_file) {
72-
$basename = explode('.', basename($seeder_file))[0];
73-
if ($seeder_class_name != $basename) {
68+
$interal_class_base_name = $this->normalizeClassName(explode('.', basename($seeder_file))[0]);
69+
if ($seeder_class_name != $interal_class_base_name) {
7470
continue;
7571
}
76-
$seeder_file[$seeder_file] = explode('.', basename($seeder_file))[0];
72+
$seeder_files[$seeder_file] = $interal_class_base_name;
7773
break;
7874
}
7975

80-
foreach ($seeder_file as $seeder_file => $seeder_class_name) {
81-
echo Color::green("Seeding: $seeder_file");
76+
foreach ($seeder_files as $file => $seeder_class_name) {
77+
echo Color::green("Seeding: $file");
8278

83-
$this->make($seeder_file, $seeder_class_name);
79+
$this->make($file, $seeder_class_name);
80+
81+
echo Color::green("Seeding completed: $file");
8482
}
8583
}
84+
85+
private function normalizeClassName(string $seeder_class_name): string
86+
{
87+
$time = explode('-', $seeder_class_name)[0];
88+
$seeder_class_name = str_replace($time, '', $seeder_class_name);
89+
90+
return Str::camel($seeder_class_name) . $time;
91+
}
8692
}

src/Console/Console.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ private function seed(): void
376376
{
377377
$action = $this->arg->getAction();
378378

379-
if (!in_array($action, ['all', 'table'])) {
379+
if (!in_array($action, ['all', 'file'])) {
380380
$this->throwFailsCommand('This action is not exists', 'help seed');
381381
}
382382

@@ -552,8 +552,8 @@ private function help(?string $command = null): int
552552
\033[0;33mclear:all\033[00m Clear all cache information
553553
554554
\033[0;32mSEED\033[00m Make seeding
555-
\033[0;33mseed:table\033[00m [name] Make seeding for one table
556-
\033[0;33mseed:all\033[00m Make seeding for all
555+
\033[0;33mseed:file\033[00m [class_name] Make seeding for one file
556+
\033[0;33mseed:all\033[00m Make seeding for all
557557
558558
\033[0;32mRUN\033[00m Launch process
559559
\033[0;33mrun:console\033[00m show psysh php REPL for debug you code.
@@ -657,7 +657,7 @@ private function help(?string $command = null): int
657657
\n\033[0;32mMake table seeding\033[00m\n
658658
659659
\033[0;33m$\033[00m php \033[0;34mbow\033[00m seed:all\033[00m Make seeding for all
660-
\033[0;33m$\033[00m php \033[0;34mbow\033[00m seed:table\033[00m table_name Make seeding for one table
660+
\033[0;33m$\033[00m php \033[0;34mbow\033[00m seed:file\033[00m class_name Make seeding for one file
661661
662662
U;
663663
break;

0 commit comments

Comments
 (0)