项目作者: zxwiProg

项目描述 :
携程apollo的php的client客户端
高级语言: PHP
项目地址: git://github.com/zxwiProg/apollo-php.git
创建时间: 2019-12-20T00:58:53Z
项目社区:https://github.com/zxwiProg/apollo-php

开源协议:MIT License

下载


apollo-php

Php Version
Apollo-Client License
Apollo-Client Copyright

安装

  1. composer require iprog/apollo-php


依赖

  • PHP 7.1 or later

如何使用:

可以起一个定时任务,然后运行如下脚本即可,也可以将如下脚本写在一个死循环里面进行循环拉取,
具体各个项目可根据自己的情况决定自己的运用方案

  1. require_once __DIR__ . "/xxx/vendor/autoload.php";
  2. $config = new ApolloPhp\Popo\Config\ApolloHttpClientConfig();
  3. $config->setApolloServerUrl("http://172.17.18.211:3880")
  4. ->setApolloAppId("php-unit-test-case")
  5. ->setApolloCluster("DEV");
  6. $apolloRedisParam = new ApolloPhp\Popo\ApolloPullParam('redis');
  7. $apolloRedisParam->setClientIp('127.0.0.1');
  8. $apolloRedisParam->setReleaseKey('');
  9. $apolloMysqlParam = new ApolloPhp\Popo\ApolloPullParam('mysql');
  10. $apolloMysqlParam->setClientIp('127.0.0.1');
  11. $apolloMysqlParam->setReleaseKey('');
  12. $apolloPullParams = [$apolloRedisParam, $apolloMysqlParam];
  13. $client = new ApolloPhp\Api\Impl\ApolloHttpClient($config);
  14. $apolloConfigResult = $client->pullConfigs($apolloPullParams);
  15. // 这里会将拉取的配置保存在php对应的配置目录里面
  16. foreach ($apolloConfigResult as $result) {
  17. $apolloConfig = new ApolloPhp\Config\Impl\ApolloConfig('D://config');
  18. $apolloConfig->parseConfig($result);
  19. }

apollo配置中心如何做配置:

需要说明的是,apollo配置中心的配置以键值对形式存在,所以,为了方便apollo-php在代码层面做解析,apollo-php拟定了一个统一的配置方式,以下举例说明。

比如,现在我们要配置redis的链接参数信息,首先我们需要在apollo配置中心配置一个redis的namespace,然后在该namespace,可以做如下配置:

  1. dev.master.host=127.0.0.1
  2. dev.master.port=6379
  3. dev.master.pwd=#343kdjer$
  4. dev.slave.host=127.0.0.1
  5. dev.slave.port=6379
  6. dev.slave.pwd=#343kdjer$
  7. test.master.host=127.0.0.1
  8. test.master.port=6379
  9. test.master.pwd=#343kdjer$
  10. test.slave.host=127.0.0.1
  11. test.slave.port=6379
  12. test.slave.pwd=#343kdjer$
  13. prod.master.host=127.0.0.1
  14. prod.master.port=6379
  15. prod.master.pwd=#343kdjer$
  16. prod.slave.host=127.0.0.1
  17. prod.slave.port=6379
  18. prod.slave.pwd=#343kdjer$

可以从上面的配置看出,键使用点(.)做分割,则apollo-php解析后,会形成如下配置文件:

  1. <?php
  2. return [
  3. 'dev' => [
  4. 'master' => [
  5. 'host' => '127.0.0.1',
  6. 'port' => '6379',
  7. 'pwd' => '#343kdjer$'
  8. ],
  9. 'slave' => [
  10. 'host' => '127.0.0.1',
  11. 'port' => '6379',
  12. 'pwd' => '#343kdjer$'
  13. ],
  14. ],
  15. 'test' => [
  16. 'master' => [
  17. 'host' => '127.0.0.1',
  18. 'port' => '6379',
  19. 'pwd' => '#343kdjer$'
  20. ],
  21. 'slave' => [
  22. 'host' => '127.0.0.1',
  23. 'port' => '6379',
  24. 'pwd' => '#343kdjer$'
  25. ],
  26. ],
  27. 'prod' => [
  28. 'master' => [
  29. 'host' => '127.0.0.1',
  30. 'port' => '6379',
  31. 'pwd' => '#343kdjer$'
  32. ],
  33. 'slave' => [
  34. 'host' => '127.0.0.1',
  35. 'port' => '6379',
  36. 'pwd' => '#343kdjer$'
  37. ],
  38. ],
  39. ];
  40. ?>