Viewing file: UpdateCommand.php (1.81 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Nwidart\Modules\Commands;
use Illuminate\Console\Command; use Nwidart\Modules\Module; use Nwidart\Modules\Traits\ModuleCommandTrait; use Symfony\Component\Console\Input\InputArgument;
class UpdateCommand extends Command { use ModuleCommandTrait;
/** * The console command name. * * @var string */ protected $name = 'module:update';
/** * The console command description. * * @var string */ protected $description = 'Update dependencies for the specified module or for all modules.';
/** * Execute the console command. */ public function handle(): int { $this->components->info('Updating module ...');
if ($name = $this->argument('module')) { $this->updateModule($name);
return 0; }
$this->updateAllModule();
return 0; }
protected function updateAllModule() { /** @var \Nwidart\Modules\Module $module */ $modules = $this->laravel['modules']->getOrdered();
foreach ($modules as $module) { $this->updateModule($module); }
}
protected function updateModule($name) {
if ($name instanceof Module) { $module = $name; }else { $module = $this->laravel['modules']->findOrFail($name); }
$this->components->task("Updating {$module->getName()} module", function () use ($module) { $this->laravel['modules']->update($module); }); $this->laravel['modules']->update($name);
}
/** * Get the console command arguments. * * @return array */ protected function getArguments() { return [ ['module', InputArgument::OPTIONAL, 'The name of module will be updated.'], ]; } }
|