Heim > PHP-Framework > Laravel > Hauptteil

Laravel Access Apollo-Codebeispiel

不言
Freigeben: 2019-03-02 13:58:26
nach vorne
6081 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit den Codebeispielen für den Zugriff auf Apollo. Freunde in Not können darauf verweisen.

Kein Unsinn mehr, kommen wir direkt zum Code

<?php

/**
 * Created by PhpStorm.
 * User: dehua
 * Date: 2019/3/1
 * Time: 14:17
 */


return [

    &#39;server&#39; => 'http://10.208.204.46:8161',

    'query' => [
        'app_id' => 'wuc',
        'cluster' => 'default',
        'namespace' => 'application',
    ]

];
Nach dem Login kopieren

Daemon-Prozess

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) . &#39;;&#39;
            ]);

            Storage::disk(&#39;config&#39;)->put($fileName, $content);
        }

        $this->line('==================');
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLaravel Access Apollo-Codebeispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!