signature = $this->signature . ' {source} {result} {--unn=}'; parent::__construct(); } public function __get($get) { if ($get == 'data') { return $this->prepareRaw(); } else { return null; } } private function prepareInput() { $source_file = CORE_PATH . '/temp/' . $this->argument('source'); $data = parse_ini_file($source_file); if(isset($data['raw_result'])) { unset($data['raw_result']); } return $data; } private function prepareOutput() { $source_file = CORE_PATH . '/temp/' . $this->argument('source'); $data = parse_ini_file($source_file); if(isset($data['raw_result'])) { return json_decode(base64_decode($data['raw_result']), true); } return null; } public function save($result) { $result_file = CORE_PATH . '/temp/' . $this->argument('result'); file_put_contents($result_file, json_encode($result)); } private function getCoreConfig($name) { $config = parse_ini_file(CORE_PATH . '/../../db.ini'); $config = array_map(function($value) { return mb_strtolower($value); }, $config); return $config[$name]; } public function initDB() { $code = $this->option('unn'); DB::disconnect('mysql'); Config::set('database.connections.mysql.username', $this->getCoreConfig('user')); Config::set('database.connections.mysql.password', $this->getCoreConfig('password')); Config::set('database.connections.mysql.host', $this->getCoreConfig('server')); Config::set('database.connections.mysql.port', $this->getCoreConfig('port')); Config::set('database.connections.mysql.database', $code); DB::reconnect(); } public function handle() { $input = $this->prepareInput(); $output = $this->prepareOutput(); try { $this->initDB(); $result = $this->command($input, $output); } catch (\Exception $e) { $result = [ 'status' => 'error', 'message' => $e->getMessage() ]; } $this->save($result); } }