Jump to content
Bicrypto v4.5.0 + All Plugins

حسين عبدالله رحمن

Members
  • Last visited

  • Posts

    1
  • Reputation

    0
  1. @Coders <?php namespace App\Http\Livewire\Public\Install; use Livewire\Component; use Brotzka\DotenvEditor\DotenvEditor; use Illuminate\Support\Facades\Artisan; use DB, Schema; use App\Models\Install; use Illuminate\Support\Facades\Http; class Environment extends Component { public $purchase_code; public $database_host = 'localhost'; public $database_port = '3306'; public $database_name; public $database_username; public $database_password; public $continue = false; public function mount() { $env = new DotenvEditor(); $this->database_host = $env->getValue("DB_HOST"); $this->database_port = $env->getValue("DB_PORT"); $this->database_name = $env->getValue("DB_DATABASE"); $this->database_username = $env->getValue("DB_USERNAME"); $this->database_password = $env->getValue("DB_PASSWORD"); } public function render() { return view('livewire.public.install.environment')->layout('layouts.install'); } /** * ------------------------------------------------------------------------------- * checkDatabaseConnection * ------------------------------------------------------------------------------- **/ public function checkDatabaseConnection($database_host, $database_port, $database_name, $database_username, $database_password){ $connection = 'mysql'; $settings = config("database.connections.$connection"); config([ 'database' => [ 'default' => $connection, 'connections' => [ $connection => array_merge($settings, [ 'driver' => $connection, 'host' => $database_host, 'port' => $database_port, 'database' => $database_name, 'username' => $database_username, 'password' => $database_password, ]), ], ], ]); DB::purge(); try { DB::connection()->getPdo(); return true; } catch (\Exception $e) { return false; } } /** * ------------------------------------------------------------------------------- * onCreateDatabase * ------------------------------------------------------------------------------- **/ public function onCreateDatabase(){ $this->validate([ 'purchase_code' => 'required', 'database_host' => 'required', 'database_port' => 'required', 'database_name' => 'required', 'database_username' => 'required' ]); try { if (! $this->checkDatabaseConnection($this->database_host, $this->database_port, $this->database_name, $this->database_username, $this->database_password) ) { $this->addError('error', __('Could not connect to the database. Maybe your Database is not available.')); return; } try { $env = new DotenvEditor(); $env->changeEnv([ 'DB_HOST' => $this->database_host, 'DB_PORT' => $this->database_port, 'DB_DATABASE' => $this->database_name, 'DB_USERNAME' => $this->database_username, 'DB_PASSWORD' => "'$this->database_password'", 'APP_URL' => url('/') ]); Artisan::call('config:cache'); Artisan::call('config:clear'); Artisan::call('migrate:fresh'); Install::create([ 'id' => 1, 'database' => true, 'token' => $this->purchase_code ]); $this->continue = true; } catch (\Exception $e) { $this->addError('error', __($e->getMessage())); } } catch (\Exception $e) { $this->addError('error', __($e->getMessage())); } } // } ضعو هاذا الكود