php用apollo,Laravel接入Apollo代码示例

本篇文章给大家带来的内容是关于Laravel接入Apollo代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

废话不说,直接上代码<?php /** * Created by PhpStorm. * User: dehua * Date: 2019/3/1 * Time: 14:17 */return [ 'server' => 'http://10.208.204.46:8161', 'query' => [ 'app_id' => 'wuc', 'cluster' => 'default', 'namespace' => 'application', ]];

守护进程namespace App\Console\Commands\Apollo;use GuzzleHttp\Client;use Illuminate\Console\Command;use Illuminate\Support\Arr;use Illuminate\Support\Facades\Storage;class SyncCommand extends Command{ /** * The name and signature of the console command. * * @var string */ protected $signature = 'ue:apollo:sync'; /** * The console command description. * * @var string */ protected $description = '阿波罗同步'; protected $config = []; protected $url; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); $this->url = config('apollo.server') . '/configs/' . implode('/', array_values(config('apollo.query'))); } /** * Execute the console command. * * @return mixed */ public function handle() { $this->doSync(); } protected function doSync() { $client = new Client(['timeout' => 2.00]); try { $response = $client->request('GET', $this->url); $body = json_decode($response->getBody()->getContents(), true); $cfg = Arr::get($body, 'configurations', []); if (!$cfg) { return true; } $cfg = array_map(function ($value) { if ($row = json_decode($value, true)) { return $row; } return $value; }, $cfg); $items = []; foreach ($cfg as $key => $value) { data_set($items, $key, $value); } foreach ($items as $k => $item) { $this->line('Saving ['.$k.']'); $this->save($k, $item); } } catch (\Exception $ex) { $this->error($ex->getMessage()); } } protected function save($fileName, $item) { if(config('apollo.sync.redis', false)){ cache()->tags('apollo')->forever($fileName, $item); $this->line('Saving To Redis '.$fileName); } if(config('apollo.sync.file', false)){ $this->line('Saving To File '.$fileName); $fileName = 'apollo/' . $fileName . '.php'; ksort($item); $content = implode("\r\n", [ "<?php ", "return", var_export($item, true) . ';' ]); Storage::disk('config')->put($fileName, $content); } $this->line('=================='); }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值