nacosvel / nacos-client
The PHP Nacos client for request and response data is strongly typed and IDE-friendly.
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/nacosvel/nacos-client
Requires
- php: >=8.0
- nacosvel/nacos-sdk-php: ^1.0
This package is auto-updated.
Last update: 2025-10-28 15:35:24 UTC
README
安装
推荐使用 PHP 包管理工具 Composer 安装:
composer require nacosvel/nacos-client
概述
1、PHP Nacos 客户端用于响应数据统一
<?php use Nacosvel\NacosClient\NacosService; use Nacosvel\NacosClient\Naming\RegisterInstanceRequest; $service = new NacosService( serverAddr: 'http://127.0.0.1:8848', namespace: 'public', username: 'nacos', password: 'nacos' ); $request = new RegisterInstanceRequest(); $v1 = $request->v1(serviceName: 'payment_service', ip: '127.0.0.1', port: 8081); $v2 = $request->v2(serviceName: 'payment_service', ip: '127.0.0.1', port: 8081); $response1 = $service->execute($v1)->response(); $response2 = $service->execute($v2)->response();
原始响应:/nacos/v1/ns/instance
ok
原始响应:/nacos/v2/ns/instance
{
    "code": 0,
    "message": "success",
    "data": "ok"
}
PHP Nacos 客户端响应:/nacos/v1/ns/instance、/nacos/v2/ns/instance
[
    'code'    => 0,
    'message' => 'success',
    'data'    => 'ok',
]
2、PHP Nacos 客户端友好于集成开发环境(IDE)
开发计划
- 配置管理
- 服务发现
- 命名空间
- Open-API鉴权
- 运维API
文档
- ✅ Done
- ⬜ To Do
- 🔄 In Progress
- ❌ Unsupported
配置管理
| interface | implements | v1 | v2 | 
|---|---|---|---|
| 2.1. 获取配置 | Nacosvel\NacosClient\Config\RequestConfigRequest | ✅ | ✅ | 
| 监听配置 | Nacosvel\NacosClient\Config\ListenerConfigRequest | ✅ | ❌ | 
| 2.2. 发布配置 | Nacosvel\NacosClient\Config\PublishConfigRequest | ✅ | ✅ | 
| 2.3. 删除配置 | Nacosvel\NacosClient\Config\DeleteConfigRequest | ✅ | ✅ | 
| 2.3. 查询配置历史列表 | Nacosvel\NacosClient\Config\HistoryListConfigRequest | ✅ | ✅ | 
| 2.3. 查询具体版本的历史配置 | Nacosvel\NacosClient\Config\HistoryConfigRequest | ✅ | ✅ | 
| 2.6. 查询配置上一版本信息 | Nacosvel\NacosClient\Config\HistoryPreviousConfigRequest | ✅ | ✅ | 
服务发现
| interface | implements | v1 | v2 | 
|---|---|---|---|
| 3.1. 注册实例 | Nacosvel\NacosClient\Naming\RegisterInstanceRequest | ✅ | ✅ | 
| 3.2. 注销实例 | Nacosvel\NacosClient\Naming\DeregisterInstanceRequest | ✅ | ✅ | 
| 3.3. 更新实例 | Nacosvel\NacosClient\Naming\UpdateInstanceRequest | ✅ | ✅ | 
| 3.4. 查询实例详情 | Nacosvel\NacosClient\Naming\InstanceRequest | ✅ | ✅ | 
| 3.5. 查询指定服务的实例列表 | Nacosvel\NacosClient\Naming\InstanceListRequest | ✅ | ✅ | 
| 发送实例心跳 | Nacosvel\NacosClient\Naming\InstanceBeatRequest | ✅ | ❌ | 
| 3.6. 批量更新实例元数据 | Nacosvel\NacosClient\Naming\UpdateInstanceMetadataBatchRequest | ✅ | ✅ | 
| 3.7. 批量删除实例元数据 | Nacosvel\NacosClient\Naming\DeleteInstanceMetadataBatchRequest | ✅ | ✅ | 
| 3.8. 创建服务 | Nacosvel\NacosClient\Naming\CreateServiceRequest | ✅ | ✅ | 
| 3.9. 删除服务 | Nacosvel\NacosClient\Naming\DeleteServiceRequest | ✅ | ✅ | 
| 3.10. 修改服务 | Nacosvel\NacosClient\Naming\UpdateServiceRequest | ✅ | ✅ | 
| 3.11. 查询服务详情 | Nacosvel\NacosClient\Naming\ServiceRequest | ✅ | ✅ | 
| 3.12. 查询服务列表 | Nacosvel\NacosClient\Naming\ServiceListRequest | ✅ | ✅ | 
| 3.13. 更新实例健康状态 | Nacosvel\NacosClient\Naming\UpdateHealthInstanceRequest | ✅ | ✅ | 
| 查询系统开关 | Nacosvel\NacosClient\Naming\OperatorSwitchesRequest | ✅ | ❌ | 
| 修改系统开关 | Nacosvel\NacosClient\Naming\UpdateOperatorSwitchesRequest | ✅ | ❌ | 
| 查看系统当前数据指标 | Nacosvel\NacosClient\Naming\OperatorMetricsRequest | ✅ | ❌ | 
| 查看当前集群Server列表 | Nacosvel\NacosClient\Naming\OperatorServersRequest | ✅ | ❌ | 
| 查看当前集群leader | Nacosvel\NacosClient\Naming\RaftLeaderRequest | ✅ | ❌ | 
| 3.14. 查询客户端列表(新) | Nacosvel\NacosClient\Naming\ClientListRequest | ❌ | ✅ | 
| 3.15. 查询客户端信息(新) | Nacosvel\NacosClient\Naming\ClientRequest | ❌ | ✅ | 
| 3.16. 查询客户端的注册信息(新) | Nacosvel\NacosClient\Naming\ClientPublishListRequest | ❌ | ✅ | 
| 3.17. 查询客户端的订阅信息(新) | Nacosvel\NacosClient\Naming\ClientSubscribeListRequest | ❌ | ✅ | 
| 3.18. 查询注册指定服务的客户端信息(新) | Nacosvel\NacosClient\Naming\ClientServersPublishListRequest | ❌ | ✅ | 
| 3.19. 查询订阅指定服务的客户端信息(新) | Nacosvel\NacosClient\Naming\ClientServersSubscribeListRequest | ❌ | ✅ | 
命名空间
| interface | implements | v1 | v2 | 
|---|---|---|---|
| 4.1. 查询命名空间列表 | Nacosvel\NacosClient\Console\NamespaceListRequest | ✅ | ✅ | 
| 4.2. 查询具体命名空间 | Nacosvel\NacosClient\Console\NamespaceRequest | ❌ | ✅ | 
| 4.3. 创建命名空间 | Nacosvel\NacosClient\Console\CreateNamespaceRequest | ✅ | ✅ | 
| 4.4. 编辑命名空间 | Nacosvel\NacosClient\Console\UpdateNamespaceRequest | ✅ | ✅ | 
| 4.5. 删除命名空间 | Nacosvel\NacosClient\Console\DeleteNamespaceRequest | ✅ | ✅ | 
Open-API鉴权
| interface | implements | v1 | v2 | 
|---|---|---|---|
| Open-API鉴权 | Nacosvel\NacosClient\Auth\LoginRequest | ✅ | ❌ | 
重要概念
在 Nacos 中,Namespace、Data ID 和 Group 是用于管理和组织配置的三个重要概念。它们共同决定了配置项的唯一性,可以帮助你更好地管理配置数据。
Namespace(命名空间)
- 用途: 命名空间用于多租户隔离,通常用来隔离不同的环境(如开发、测试、生产)或不同的业务线。
- 唯一性: 同一命名空间内的 Data ID和Group是唯一的,但不同命名空间之间可以存在相同的Data ID和Group组合。
Data ID
- 用途: Data ID是配置项的标识符,用于区分不同的配置项。
- 唯一性: 在同一命名空间和同一组(Group)内,Data ID是唯一的。
Group(组)
- 用途: 组用于对配置进行进一步分类,通常用于区分不同的模块或应用程序。
- 唯一性: 在同一命名空间内,同一组(Group)内的Data ID是唯一的。
三者关系举例
假设你有一个微服务架构的系统,包含三个环境(开发、测试、生产),并且每个环境下都有多个应用。
- Namespace: 可以用来区分不同的环境。- Namespace: dev(开发环境)
- Namespace: test(测试环境)
- Namespace: prod(生产环境)
 
- Group: 用来区分不同的应用或模块。- Group: payment-service(支付服务)
- Group: order-service(订单服务)
 
- Data ID: 用来标识具体的配置项。- Data ID: db-config(数据库配置)
- Data ID: redis-config(Redis 配置)
 
具体示例
- 开发环境下的支付服务数据库配置:
- Namespace: dev
- Group: payment-service
- Data ID: db-config
 
- 生产环境下的订单服务 Redis 配置:
- Namespace: prod
- Group: order-service
- Data ID: redis-config
 
总结
在 Nacos 中,一个配置项的唯一性是由 Namespace + Group + Data ID 三者组合决定的。这种设计允许你在不同的环境、不同的应用中灵活地管理和隔离配置。
License
Nacosvel NacosClient is made available under the MIT License (MIT). Please see License File for more information.

