yuanlj-tea/apollo-client
Composer 安装命令:
composer require yuanlj-tea/apollo-client
包简介
php apollo client
README 文档
README
apollo-client
协程apollo php client for laravel
1、安装
composer require yuanlj-tea/apollo-client
2、使用
require_once __DIR__ . '/../vendor/autoload.php'; use ApolloClient\ApolloClient; $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' => [ // ... ApolloClient\ApolloClientServiceProvider::class, ], 'aliases' => [ // ... 'Apollo' => ApolloClient\ApolloFacade::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
yuanlj-tea/apollo-client 适用场景与选型建议
yuanlj-tea/apollo-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 08 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 yuanlj-tea/apollo-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 yuanlj-tea/apollo-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-08-09