PHPackages                             kriss/php-nacos - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. kriss/php-nacos

AbandonedArchivedLibrary[API Development](/categories/api)

kriss/php-nacos
===============

Nacos for PHP with openAPI

v1.6.0(3y ago)31.0k1MITPHPPHP &gt;=7.1

Since Apr 29Pushed 3y ago1 watchersCompare

[ Source](https://github.com/krissss/php-nacos)[ Packagist](https://packagist.org/packages/kriss/php-nacos)[ RSS](/packages/kriss-php-nacos/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (6)Dependencies (9)Versions (11)Used By (0)

PHP Nacos
=========

[](#php-nacos)

安装
--

[](#安装)

`composer require kriss/php-nacos`

配置
--

[](#配置)

给 nacos Container 添加各种必须组件

```
use Kriss\Nacos\Contract\ConfigRepositoryInterface;
use Kriss\Nacos\Contract\HttpClientInterface;
use Kriss\Nacos\Contract\LoadBalancerManagerInterface;
use Kriss\Nacos\NacosContainer;
use Kriss\Nacos\Support\HttpClient;
use Kriss\Nacos\Support\LoadBalancerManager;
use Psr\SimpleCache\CacheInterface;

$container = new NacosContainer();

// 构造一个 ConfigRepository 实现 ConfigRepositoryInterface，参考:  Kriss\Nacos\Support\MemoryConfigRepository
// 配置的 nacos 参数参考：config/nacos.php
/** @var ConfigRepositoryInterface $configRepository */
$container->add(ConfigRepositoryInterface::class, $configRepository);

// 构造一个 Httpclient 实现 HttpClientInterface，一般可以直接使用 Kriss\Nacos\Support\HttpClient
$httpClient = new HttpClient($log = new \Psr\Log\NullLogger());
$container->add(HttpClientInterface::class, $httpClient);
// 建议配置 log，记录完整的请求或异常的请求
// 例如使用 monolog：
/*$log = new Logger('nacos');
$log->pushHandler(new StreamHandler(__DIR__ . '/../runtime/mock_log.log'));*/

// 在使用 nacos 授权访问时，需要注入 Psr16 的 Cache 组件，用于缓存 nacos 的令牌
// 以下为例子
/*$filesystemAdapter = new Local(__DIR__ . '/../runtime');
$filesystem = new Filesystem($filesystemAdapter);
$cachePool = new FilesystemCachePool($filesystem);
$simpleCache = new SimpleCacheBridge($cachePool);*/
/** @var CacheInterface $simpleCache */
$container->add(CacheInterface::class, $simpleCache);

// 在使用 InstanceService::getOptimal 时需要 loadBalancer
$loadBalancer = new LoadBalancerManager();
$container->add(LoadBalancerManagerInterface::class, $loadBalancer);
```

使用
--

[](#使用)

所有 OpenApi 的使用（包括授权 Auth）

```
/** @var \Kriss\Nacos\NacosContainer $container */

// 授权 API
$authApi = $container->get(\Kriss\Nacos\OpenApi\AuthApi::class);
// 配置管理 API
$configApi = $container->get(\Kriss\Nacos\OpenApi\ConfigApi::class);
// 服务实例 API
$instanceApi = $container->get(\Kriss\Nacos\OpenApi\InstanceApi::class);
// 命名空间 API
$namespaceApi = $container->get(\Kriss\Nacos\OpenApi\NamespaceApi::class);
// 操作系统 API
$operatorApi = $container->get(\Kriss\Nacos\OpenApi\OperatorApi::class);
// 服务 API
$serviceApi = $container->get(\Kriss\Nacos\OpenApi\ServiceApi::class);
```

常用业务的使用

```
/** @var \Kriss\Nacos\NacosContainer $container */

// 配置管理
$configService = $container->get(\Kriss\Nacos\Service\ConfigService::class);
// 监听配置修改
while (true) {
    $configService->listenConfigs();
    usleep(5000);
    if ('something') {
        break;
    }
}
// 服务实例 API
$instanceService = $container->get(\Kriss\Nacos\Service\InstanceService::class);
// 注册当前服务实例
$instanceService->register();
// 注销服务实例
$instanceService->deregister();
```

扩展
--

[](#扩展)

修改已有的服务或组件，通过覆盖原 API 或 Service，然后在容器中注入新的即可，比如： 想要修改 ConfigApi，只需要新建一个类，比如 `MyConfigApi extend ConfigApi`，然后在配置 container 时加入：`$container->add(ConfigApi::class, MyConfigApi::class)`

例子
--

[](#例子)

[Laravel](./examples/laravel)

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~96 days

Recently: every ~158 days

Total

9

Last Release

1110d ago

PHP version history (2 changes)v1.0PHP &gt;=7.1, &lt;8.0

v1.5.2PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/b4053cfc9956b8c15b9bc4c9c7c2bad625d16d1b6d9191019b2a25cc0972d955?d=identicon)[kriss](/maintainers/kriss)

---

Top Contributors

[![krissss](https://avatars.githubusercontent.com/u/10680903?v=4)](https://github.com/krissss "krissss (27 commits)")

---

Tags

nacos

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kriss-php-nacos/health.svg)

```
[![Health](https://phpackages.com/badges/kriss-php-nacos/health.svg)](https://phpackages.com/packages/kriss-php-nacos)
```

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k19.1M1.7k](/packages/cakephp-cakephp)[laravel/framework

The Laravel Framework.

34.8k532.1M19.4k](/packages/laravel-framework)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[algolia/algoliasearch-client-php

API powering the features of Algolia.

69634.4M144](/packages/algolia-algoliasearch-client-php)[kimai/kimai

Kimai - Time Tracking

4.7k8.7k1](/packages/kimai-kimai)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

749284.3k35](/packages/civicrm-civicrm-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
