laravel 접속 컨설팅
config/consul.php
return [
'url' => 'http://127.0.0.1:8500/v1/kv/',
];
filesystems.php
'config' => [
'driver' => 'local',
'root' => base_path('config'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
명령 줄:
namespace App\Console\Commands\Consul;
use GuzzleHttp\Client;
use Illuminate\Console\Command;
class DeamonCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'ue:consul:deamon
{ path : }
';
protected $items = [];
/**
* The console command description.
*
* @var string
*/
protected $description = 'consul ';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
public function handle()
{
$path = trim($this->argument('path'), '/');
$url = rtrim(config('consul.url'), '/') . '/' . $path . '/?recurse';
$client = new Client();
try {
$response = $client->request('GET', $url);
$rows = json_decode($response->getBody()->getContents(), true);
if (count($rows) == 1) {
return true;
}
$name = null;
foreach ($rows as $key => $row) {
if (substr($row['Key'], -1) == '/') {
$name = substr($row['Key'], 0, -1);
$this->items[$name] = [];
continue;
}
$key = trim(str_replace($name, ' ', $row['Key']), ' /');
$this->items[$name][$key] = base64_decode($row['Value']);
}
$this->doSave();
} catch (\Exception $ex) {
$this->error($ex->getMessage());
return true;
}
}
protected function doSave()
{
foreach ($this->items as $path => $item) {
if (!$item) {
$this->error($path .' : Is Empty.');
continue;
}
$item = array_map(function($row){
if(json_decode($row)){
return json_decode($row, true);
}
return $row;
}, $item);
$content = [
"put($path . '.php', implode("\r
", $content));
$this->line($path . ' : Write Success.');
} catch (\Exception $ex) {
$this->error($path .' : ' .$ex->getMessage());
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.