feat(php-client): 实现 PHP 客户端 SDK 及示例

This commit is contained in:
2026-07-27 21:17:44 +08:00
parent 924c87e250
commit c288122373
11 changed files with 572 additions and 11 deletions
+58 -11
View File
@@ -24,20 +24,12 @@ kenaito-conf/
├── kenaito-conf-nodejs-client-demo/ # Node.js 客户端示例(端口 8083)
├── kenaito-conf-perl-client/ # Perl 客户端 SDK(Perl 5.16+)
├── kenaito-conf-perl-client-demo/ # Perl 客户端示例
├── kenaito-conf-php-client/ # (未支持)PHP 客户端 SDK(PHP 8.0+)
├── kenaito-conf-php-client-demo/ # (未支持)PHP 客户端示例
├── kenaito-conf-php-client/ # PHP 客户端 SDK(PHP 7.4+)
├── kenaito-conf-php-client-demo/ # PHP 客户端示例
├── kenaito-conf-dotnet-client/ # .NET 客户端 SDK(.NET 6.0+)
├── kenaito-conf-dotnet-client-demo/ # .NET 客户端示例
├── kenaito-conf-c-client/ # (未支持)C 客户端 SDK(libcurl + OpenSSL)
├── kenaito-conf-c-client-demo/ # (未支持)C 客户端示例
├── kenaito-conf-cpp-client/ # (未支持)C++ 客户端 SDK(libcurl + OpenSSL)
├── kenaito-conf-cpp-client-demo/ # (未支持)C++ 客户端示例
├── kenaito-conf-lua-client/ # Lua 客户端 SDK(Lua 5.1+)
├── kenaito-conf-lua-client-demo/ # Lua 客户端示例
├── kenaito-conf-rust-client/ # (未支持)Rust 客户端 SDK(Rust 1.70+)
├── kenaito-conf-rust-client-demo/ # (未支持)Rust 客户端示例
├── kenaito-conf-ruby-client/ # (未支持)Ruby 客户端 SDK(Ruby 2.7+)
└── kenaito-conf-ruby-client-demo/ # (未支持)Ruby 客户端示例
└── kenaito-conf-lua-client-demo/ # Lua 客户端示例
```
## 快速开始
@@ -370,6 +362,61 @@ client:sync_once()
client:stop()
```
### PHP 客户端
适用于 PHP 7.4+ 项目。
**1. 安装**
```bash
cd kenaito-conf-php-client
composer install
```
或在项目中引入:
```bash
composer require kenaito/conf-client
```
**2. 使用**
```php
require_once 'vendor/autoload.php';
use Kenaito\Conf\Config;
use Kenaito\Conf\Client;
$config = new Config([
'baseUrl' => 'http://localhost:8080',
'appName' => 'my-app',
'env' => 'daily',
'syncInterval' => 10,
]);
$client = new Client($config);
// 监听配置变更
$client->onChange(function(array $changed) {
foreach ($changed as $key => $value) {
echo "config changed: $key = $value\n";
}
});
// 启动客户端(拉取配置)
$client->start();
// 获取配置
$value = $client->get('database.host');
$all = $client->getAll();
// 手动同步一次
$client->syncOnce();
// 停止
$client->stop();
```
## API 概览
### 管理端 API(需 JWT 认证)