⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
erp.dev-unit.com
/
app
/
Console
/
Commands
/
View File Name :
PackageSeed.php
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\File; use App\Facades\ModuleFacade as Module; class PackageSeed extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'package:seed {packageName?}'; public $name; /** * The console command description. * * @var string */ protected $description = 'Seed a specific package or all packages'; /** * Execute the console command. */ public function handle() { $packageName = $this->argument('packageName'); if ($packageName) { $module = Module::find($packageName); if ($module->name) { $this->seedPackage($module->name); } else { $this->error("Module {$packageName} not found."); } } else { $this->seedAllPackages(); } } protected function seedPackage($packageName) { $seederClass = $this->getSeederClass($packageName); if ($seederClass) { $this->info("Seeding {$packageName}..."); Artisan::call('db:seed', ['--class' => $seederClass,'--force'=> true]); $this->info("{$packageName} Seeder Run Successfully!"); } else { $this->error("Seeder for package {$packageName} not found."); } } protected function seedAllPackages() { $packages = $this->getAllPackages(); foreach ($packages as $package) { $module = Module::find($package); if($module->name){ $this->seedPackage($module->name); } else{ $this->error("Module {$package} not found."); } } } protected function getSeederClass($packageName) { $seederClass = "Workdo\\{$packageName}\\Database\\Seeders\\{$packageName}DatabaseSeeder"; if (class_exists($seederClass)) { return $seederClass; } return null; } protected function getAllPackages() { $packages = []; $vendorDir = base_path('packages/workdo'); $directories = File::directories($vendorDir); foreach ($directories as $directory) { $package = basename($directory); $packages[] = $package; } return $packages; } }