PHPackages                             suframe/think - 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. [Framework](/categories/framework)
4. /
5. suframe/think

ActiveLibrary[Framework](/categories/framework)

suframe/think
=============

suframe thinkphp 6 extension

1.0.10(5y ago)289Apache-2.0PHP

Since Dec 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/suframe/think)[ Packagist](https://packagist.org/packages/suframe/think)[ RSS](/packages/suframe-think/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (2)Versions (12)Used By (0)

suframe-think
=============

[](#suframe-think)

开发交流QQ群：647344518 [立即加群](http://shang.qq.com/wpa/qunwpa?idkey=83a58116f995c9f83af6dc2b4ea372e38397349c8f1973d8c9827e4ae4d9f50e)

使用thinkphp6作为suframe服务后端的扩展库，让thinkphp6有轻量级微服务功能
本库基于 \*\*(v3.0.5以上版本)\*\*上进行的扩展，基本保持原有用法不变。
**本系统只针对小型业务系统，大中规模的微服务架构是需要很多工具和系统支撑的，不在此项目服务覆盖内，所以别杠啥鉴权限流降级等**

有兴趣的朋友可以看看这篇新手引导文章：

设计
==

[](#设计)

- 通过composer create-project topthink/think创建的为一个独立项目
- 一个项目为一个服务提供者
- 一个服务提供者可以提供多个接口
- 自动注册接口到注册中心
- 有新服务注册，自动更新client列表
- api网关代理
- Swoole Tracker集成
- todo:日志及链路追踪

安装使用
====

[](#安装使用)

```
composer create-project topthink/think server1
cd server1
composer require suframe/think

```

修改config/swoole.php

```
rpc.server.enable => true,
rpc.server.port => 自定义端口,
rpc.client => include(__DIR__ . '/suframeRpcClient.php');

```

修改config/suframeProxy.php

```
path => '/admin' 为你想注册的api网关根路径，例如/admin,
name => 'admin' 为你服务的名称（只能是英文字母）
registerServer => [
    'ip' => '127.0.0.1' //选一个应用作为服务注册的应用，这里就选第一个
    'port' => 8091
]

```

快速体验
====

[](#快速体验)

有兴趣的可以去看怎么从零搭建自己的服务：

api网关
=====

[](#api网关)

服务拆分后，api分布比较散，需要统一对外暴露地址 打开app/middleware.php文件，增加

```
return [
    \suframe\think\middlewares\Gateway::class
    ...
]

```

访问：(网关端口和地址目前是你用于注册rpc的地址)

服务监控
====

[](#服务监控)

使用swoole\_tracker [http://base.swoole-cloud.com/1214079,免费的](http://base.swoole-cloud.com/1214079,%E5%85%8D%E8%B4%B9%E7%9A%84)安装比较简单，无侵入。照着手册撸即可
需要注意的是swoole\_tracker免费版的额度比较低，我一个压测就没有额度了。有钱的大佬可以买私有化部署，1万起

分布式日志
=====

[](#分布式日志)

微服务化开发，没有统一日志进行链路追踪是很痛苦的事情，不过就是那么巧，think-swoole扩展性还有待提高，目前还没有办法 把一个请求的request\_id一层层传下去并生成统一日志。

这个我只能想折中的方法了，只是这样业务强绑定了，开发体验不是很好.

1. 在前端网关转发的是，后端服务controller可从header中获取--request\_id-- 作为链路请求标识。
2. rpc接口约定好，定义接口的时候，最后一个参数定义$ext = \[\], 用于扩展
3. 在controller或者其他业务代码中调用rcp接口的时候， $rpc-&gt;method(\[业务参数\], $this-&gt;getRpcExtParams()), 其中$this-&gt;getRpcExtParams()就是系统默认增加的额外参数，当然前提是你控制器要use suframe\\think\\traits\\ControllerHelper;
4. 日志，tp6的日志比较灵活，意思就是要自己写，包括请求日志，等你自己想获取的

已经反馈社区看如何处理

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 91% 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 ~22 days

Recently: every ~1 days

Total

11

Last Release

2113d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/26e36c8d7e37a188cea18a232fb883576c4ec3000394179f703e3c17397f3e8b?d=identicon)[shulinqian](/maintainers/shulinqian)

---

Top Contributors

[![shulinqian](https://avatars.githubusercontent.com/u/3351161?v=4)](https://github.com/shulinqian "shulinqian (61 commits)")[![suframe](https://avatars.githubusercontent.com/u/52858585?v=4)](https://github.com/suframe "suframe (6 commits)")

### Embed Badge

![Health badge](/badges/suframe-think/health.svg)

```
[![Health](https://phpackages.com/badges/suframe-think/health.svg)](https://phpackages.com/packages/suframe-think)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M593](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91245.3M587](/packages/laravel-pail)

PHPackages © 2026

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