Laravel接入Apollo代码示例

互联网 19-3-2
本篇文章给大家带来的内容是关于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('==================');     } }

以上就是Laravel接入Apollo代码示例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Laravel配置双模板的方法介绍(代码示例)

相关资讯