博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
laravel接入Consul
阅读量:6083 次
发布时间:2019-06-20

本文共 2522 字,大约阅读时间需要 8 分钟。

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\n", $content)); $this->line($path . ' : Write Success.'); } catch (\Exception $ex) { $this->error($path .' : ' .$ex->getMessage()); } } }}

转载地址:http://rlkwa.baihongyu.com/

你可能感兴趣的文章
微信小程序 解决 数字粗细不一 的bug
查看>>
mock.js 的用法 -- 脱离后端独立开发,实现增删改查功能
查看>>
FJ省队集训最终测试 T2
查看>>
PHP csv文件内容转成数组/Json
查看>>
[结题报告]11479 - Is this the easiest problem? Time limit: 1.000 seconds
查看>>
php中使用linux命令四大步骤
查看>>
neo4j安装与示例
查看>>
ExceptionLess新玩法 — 记日志
查看>>
RabbitMQ 集群
查看>>
启动jetty命令
查看>>
C#获取当前时间与同步时间
查看>>
端口被占用了,使用netstat找到占用端口的进程
查看>>
springboot的profile配置
查看>>
c++ 指针与 typedef
查看>>
委托-匿名方法-Lambda表达式
查看>>
MPF配置文件参数管理
查看>>
四则运算程序生成
查看>>
PIE SDK矢量数据的创建
查看>>
洛谷p1064 金明的预算方案
查看>>
10步让你成为更优秀的程序员
查看>>