Skip to content

Commit e37e784

Browse files
committed
add package main functionnality => 'LaravelSubFolderMigrationsServiceProvider.php'
1 parent 45cb80c commit e37e784

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

src/LaravelSubfolderMigrationsServiceProvider.php

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,41 @@
44

55
use Spatie\LaravelPackageTools\Package;
66
use Spatie\LaravelPackageTools\PackageServiceProvider;
7-
use Yusufalper\LaravelSubfolderMigrations\Commands\LaravelSubfolderMigrationsCommand;
87

98
class LaravelSubfolderMigrationsServiceProvider extends PackageServiceProvider
109
{
1110
public function configurePackage(Package $package): void
1211
{
13-
/*
14-
* This class is a Package Service Provider
15-
*
16-
* More info: https://github.com/spatie/laravel-package-tools
17-
*/
18-
$package
19-
->name('laravel-subfolder-migrations')
20-
->hasConfigFile()
21-
->hasViews()
22-
->hasMigration('create_laravel-subfolder-migrations_table')
23-
->hasCommand(LaravelSubfolderMigrationsCommand::class);
12+
$package->name('laravel-subfolder-migrations');
13+
14+
$mainMigrationPath = database_path('migrations');
15+
$directories = glob($mainMigrationPath . '/*' , GLOB_ONLYDIR);
16+
$allSubDirs = self::recursiveSearch($directories);
17+
18+
$allMigrationPaths = array_merge([$mainMigrationPath], $allSubDirs);
19+
20+
$this->loadMigrationsFrom($allMigrationPaths);
21+
}
22+
23+
protected static function recursiveSearch(array $directories): array
24+
{
25+
$subs = [];
26+
$deepSubs = [];
27+
if (count($directories) > 0){
28+
$subs = self::getSubDirectories($directories);
29+
}
30+
if (count($subs) > 0){
31+
$deepSubs = self::recursiveSearch($subs);
32+
}
33+
return array_merge($directories, $subs, $deepSubs);
34+
}
35+
36+
protected static function getSubDirectories(array $directories): array
37+
{
38+
$subDirectories = [];
39+
foreach ($directories as $directory){
40+
$subDirectories[] = glob($directory . '/*' , GLOB_ONLYDIR);
41+
}
42+
return array_merge(...$subDirectories);
2443
}
2544
}

0 commit comments

Comments
 (0)