55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Console\Commands;
 | |
| 
 | |
| use App\Abstracts\Commands\Module as Command;
 | |
| use App\Events\Module\Uninstalled;
 | |
| 
 | |
| class UninstallModule extends Command
 | |
| {
 | |
|     /**
 | |
|      * The name and signature of the console command.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $signature = 'module:uninstall {alias} {company} {locale=en-GB}';
 | |
| 
 | |
|     /**
 | |
|      * The console command description.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $description = 'Uninstall the specified module.';
 | |
| 
 | |
|     /**
 | |
|      * Execute the console command.
 | |
|      *
 | |
|      * @return mixed
 | |
|      */
 | |
|     public function handle()
 | |
|     {
 | |
|         $this->prepare();
 | |
| 
 | |
|         if (!$this->getModel()) {
 | |
|             $this->info("Module [{$this->alias}] not found.");
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         $this->changeRuntime();
 | |
| 
 | |
|         // Delete db
 | |
|         $this->model->delete();
 | |
| 
 | |
|         $this->createHistory('uninstalled');
 | |
| 
 | |
|         event(new Uninstalled($this->alias, $this->company_id));
 | |
| 
 | |
|         // Delete files
 | |
|         $this->module->delete();
 | |
| 
 | |
|         $this->revertRuntime();
 | |
| 
 | |
|         $this->info("Module [{$this->alias}] uninstalled.");
 | |
|     }
 | |
| }
 |