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 AppConsoleCommandsApollo;  use GuzzleHttpClient; use IlluminateConsoleCommand; use IlluminateSupportArr; use IlluminateSupportFacadesStorage;  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("rn", [                 "<?php",                 "return",                 var_export($item, true) . ';'             ]);              Storage::disk('config')->put($fileName, $content);         }          $this->line('==================');     } }

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享