apollo-client


协程apollo php client for laravel

1、安装

composer require yuanlj-tea/apollo-client

2、使用

require_once __DIR__ . '/../vendor/autoload.php'; use ApolloClientApolloClient; $base_url = 'http://xxx'; $appid = 'xxx'; $namespace = ['xxx']; $cluster = 'default'; $envDir = __DIR__ . '/../env'; $saveDir = __DIR__ . '/../src'; $client = new ApolloClient($base_url, $appid, $namespace); //方式1:依赖模板文件 $client->setCluster($cluster) //设置集群名 ->setEnvFileName('env-2') //设置env文件名 // ->setTplFileName('tpl.php') //设置env模板文件名 ->setEnvTemplateDir($envDir) //设置env模板文件所在路径 ->setEnvSavedDir($saveDir); //设置env文件的存储路径 $client->startLongPull(1); //方式2:不依赖模板文件,把apollo的配置文件放入env $envFullPath = __DIR__ . '/../src/.env-3'; $client->setCluster($cluster) //设置集群名 ->setEnvPath($envFullPath); //设置env文件存储的完整路径 $client->startLongPull(2); //方式3:自行传入闭包自定义env生成方式 $callBack = function($data){ // do sth }; $client->startLongPull(3,$callBack);

3、方法说明

setEnvFileName($envFileName)//设置要生成的env模板文件名 setEnvSavedDir($envSavedDir)//设置env要保存到的文件夹 setEnvPath($fullPath)//设置env文件要保存的全路径 setTplFileName($tplFileName)//设置env模板文件名 setEnvTemplateDir($envTemplateDir)//设置env模板文件 setEnvTplPath($fullPath)//设置要依赖的env模板文件的全路径 setCluster($cluster)//设置集群名 setClientIp()//设置client ip startLongPull($type = 1, Closure $callback_param = null)//开始从apollo拉取配置


4、在laravel中使用

4.1、创建配置文件

php artisan vendor:publish --tag=apollo --force(强制替换已有的配置文件) 会在config_path()下生成apollo.php

4.2、在 config/app.php注册 ServiceProvider 和 Facade

'providers' => [ // ... ApolloClientApolloClientServiceProvider::class, ], 'aliases' => [ // ... 'Apollo' => ApolloClientApolloFacade::class, ],

4.3、三种方式获取服务实例

方法参数注入

public function handle(ApolloClient $apollo) { $apollo->doSth(); }

通过服务名获取

public function handle() { app('apollo_client')->setEnvFileName('env.prod') ->setEnvSavedDir($saveDir) ->startLongPull(2); }

通过门面类获取

use Apollo; public function handle() { $envTplDir = app_path().'/env'; $saveDir = realpath(app_path() . '/../'); Apollo::setEnvFileName('env.prod') ->setEnvSavedDir($saveDir) ->startLongPull(2); }

License

MIT

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。