Swoft 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Swoft 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Swoft 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Swoft 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Swoft 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。

Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。

功能特色

  • 内置高性能网络服务器(Http/Websocket/RPC/TCP)
  • 灵活的组件功能
  • 强大的注解功能
  • 多样化的命令终端(控制台)
  • 强大的面向切面编程(AOP)
  • 容器管理,依赖注入(DI)
  • 灵活的事件机制
  • 基于PSR-7的HTTP消息的实现
  • 基于PSR-14的事件管理
  • 基于PSR-15的中间件
  • 国际化(i18n)支持
  • 简单有效的参数验证器
  • 高性能连接池(Mysql/Redis/RPC),自动重新连接
  • 数据库高度兼容Laravel的使用方式
  • Redis高度兼容Laravel的使用方式
  • 秒级定时任务
  • 进程池
  • 高效的任务处理
  • 灵活的异常处理
  • 强大的日志系统
  • 服务注册与发现
  • 配置中心
  • 服务限流
  • 服务降级
  • 服务熔断
  • Apollo
  • Consul
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (13)

加载中
这框架被hyperf抄袭的好惨
01/26 17:19
回复
举报
打分: 力荐
加油加油 棒棒的
2020/11/13 09:55
回复
举报
有直接可用的docker镜像吗
2019/11/22 13:43
回复
举报
我不喜欢太灵活的框架,如果没有规范,太过于灵活,后期维护就是 xxx。swoft 上手有点难度,也有很多规范
2019/11/15 10:17
回复
举报
基于 Spring boot 的设计精髓 很 nice 👍 希望 php 也能有一个类似 java Springboot 一样的框架 !
2019/11/15 09:56
回复
举报
怎么投票?
2019/11/15 09:52
回复
举报
stelin软件作者
2019/11/15 13:40
回复
举报
支持全网最好框架,加油
2019/11/15 09:44
回复
举报
哪位大神指点一下swoole、swoft的学习路线,一点概念都没有
2019/01/24 17:12
回复
举报
swoft非常不错,经过实践swoft写数据库、Redis的性能是tp5(nginx+php-fpm+开启opcache)空跑的5-10倍,而且没有经过优化。核心团队都比较忙,所以社区显得比较低调。 swoft一群:548173319 swoft二群:778656850
2018/12/11 10:07
回复
举报
我太笨了,看了下文档,完全找不到门在哪儿
2018/03/24 23:56
回复
举报
更多评论
发表于AI & 大数据专区
2019/11/20 10:05

Swoft 2.0.7 如期而至

什么是 Swoft ? Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。 Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性...

19
18
发表于服务端专区
2019/09/25 09:04

Swoft 2.0.6 正式版本发布

什么是 Swoft ? Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。 Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性...

11
14
发表于AI & 大数据专区
2019/08/08 08:24

Swoft 2.0.5 更新,新增高效秒级定时任务

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。 新增内容: 高效秒级定时任务 如下简单几行代码,就定义了一个每秒执行的定时任务,完全可以取代系统定时任务。...

8
13
发表于软件架构专区
2019/07/25 09:42

Swoft 2.0.4 发布,进程、TCP 组件

什么是 Swoft ? Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。 Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性...

12
21
发表于AI & 大数据专区
2019/07/09 21:30

Swoft 2.0.3 重大更新,发布优雅的微服务治理

什么是 Swoft ? Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。 Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性...

6
15
发表于AI & 大数据专区
2019/06/23 23:46

Swoft 2.0.2 发布,PHP 微服务协程框架

新增(Enhancement): 新增 $request->parsedQuery() 方法 (ab45089) 新增 Bean 属性注入基础数据类型(string/int/bool/float/array),自动根据注释类型转换。(e3d4085) 新增 db(), 使 Model/Query/DB 支持切库(f3b12c9) 新增 DbSelectorInterface 用于根据业务自动切库(b36ca03) 新增 Http server 增加Cookies响应支持 (1a024bf) 新增 devtool 组件的实体生成(14b4d39c) 新增 允许注册 swoole 的 pipeMessage, packet 事件(afec...

23
10
发表于服务端专区
2019/05/29 09:19

PHP 协程框架 Swoft 2.0.1 Beta 更新啦

更新内容 新增(Enhancement): 新增验证器不存在错误提示(5ba8682) 新增 AOP 代理类名称标识 _PROXY_ (5ba8682) 新增实体字段值类型转错误异常提示(ab3cfea) 新增 BeanFactory::getBeans() 根据类名查询使用实例(999c10f) 新增 Model getAttributeValue 获取字段值方法(642d791e) 新增 Get 方式参数验证(6452a37) 新增 Redis 通过 Inject 方式注入使用(fc0a88e) 新增 RRC 服务全局异常处理(1653b24) 修复(Fixed): 修复 CLog 日...

12
9
发表于服务端专区
2019/05/21 00:40

Swoft 2 Beta 发布,基于 Swoole 的云原生协程框架

Swoft 2 Beta 发布,基于 Swoole 的云原生协程框架 Swoft 是首个基于 Swoole 原生协程的框架,从开发到发布据今已有2年多。 1.x 发布以来,已有大量的开发人员和企业使用,得到了大家的认可。从去年11月份开始,将近半年的时间从零开始,底层吸取之前经验,基于 Swoole hook 方式完全重新构建 2.x。 Swoft 2 每个组件都严格加上单元测试和压力测试,相比之前更佳简单、稳定、易上手,为了方便 phper 快速上手,数据库、缓存的使...

20
21
发表于软件架构专区
2018/03/07 11:00

Swoft 1.0 正式来袭,首个基于 Swoole 原生协程的框架

历时 1 年多紧锣密鼓的开发,以及愉快而忙碌的春节假期,期间 github star 数从 500 到快破 1k,码云首页推荐,Swoole 作者 Rango 和社区的大力支持,Swoft 1.0 正式版终于要和大家见面。此次更新新增了大量特性,在易用性/代码复用/性能方面都有所提升。Swoft 可用于构建高性能的 Web 系统、API、中间件、基础服务等等。 功能特性预览: 基于 Swoole 扩展 内置协程网络服务器 MVC 分层设计 高性能路由 强大的 AOP (面向切面编程...

31
34
发表了资讯
2017/12/12 11:21

Swoft 协程框架 0.2.1 版本更新,基于 Swoole 原生协程

Swoft 基于 Swoole 原生协程,新时代 PHP 高性能协程框架,内置 HTTP 服务器,框架全协程实现,性能大大优于传统的 PHP-FPM 模式。 重构 Request 和 Response,参考 PSR-7 (https://doc.swoft.org/request.html) 简化控制器 (https://doc.swoft.org/controller.html) 简化 Service (https://doc.swoft.org/rpc-service.html) 增加 HTTP 和 Service 中间件参考 PSR-15 (https://doc.swoft.org/middleware/middleware.html) 增加 ...

40
29
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/02/15 20:24

Swoft 容器使用

可以借助Swoft下的Bean类操作容器 示例: 将类绑定至容器 use Swoft\Bean\Annotation\Bean; /** * @Bean("imageLogic") */ class ImageLogic extends BaseLogic { /** * 根据id获取图片 * @param int $id * @return array */ public static function getOne(int $id): array { return Query::table(Image::class)->where('id',$id)->limit(1)->get(['url','thumb_url...

0
0
发表了博客
2019/12/26 11:06

Swoft 2.X配置

Swoft的配置分为两类,环境配置和应用配置。 环境配置 环境配置是用于不常改动的跟环境相关的配置参数,例如:运行模式、资源地址等等。 在项目的根目录有一个 .env.example 如果要使用则把文件修改成 .env,配置就可以在里面使用。 .env APP_DEBUG = 0 SWOFT_DEBUG = 0 TEST_NAME = 测试名称 .env 文件的使用 env(string $key = null, $default = null) $key 配置参数key,如:TEST_NAME $default 默认参数,当key不存在的时候...

0
0
发表了博客
2018/11/17 19:32

swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?

<p>date: 2018-8-01 14:22:17<br>title: swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?<br>description: 阅读 sowft 框架源码, 了解 sowft 启动阶段的那些事儿</p> <p>小伙伴刚接触 swoft 的时候会感觉 <strong>压力有点大</strong>, 更直观的说法是 <strong>难</strong>. 开发组是不赞成 <strong>难</strong> 这个说法的, swoft 的代码都是 php 实现的, 而 php 又是 <strong>世界上最好的语言</strong>, swoft 的代码阅...

0
0
发表了博客
2019/01/27 16:55

Swoft 图片上传与处理

上传 在Swoft下通过 \Swoft\Http\Message\Server\Request -> getUploadedFiles()['image'] 方法可以获取到一个 Swoft\Http\Message\Upload\UploadedFile 对象或者对象数组(取决于上传时字段是image还是image[]) 打印改对象输出: object(Swoft\Http\Message\Upload\UploadedFile)#1813 (6) { ["clientFilename":"Swoft\Http\Message\Upload\UploadedFile":private]=> string(25) "蒙太奇配置接口.txt" ["clientMedi...

0
0
发表了博客
2020/07/15 11:16

学习swoft的第二天_注解

承接上文 第一天的时候,开启ws服务之后 php bin/swoft ws:start 可以通过ip加端口的方式进行访问 这是我们访问到的页面 我们知道要想学习一个新的框架,首先要知道的就是它的路由是怎么写的 文档上说,swoft框架使用的是注解,而不像laravel或者tp那样定义路由 先看一下 我们访问的首页是哪一个控制器中的哪一个方法 这个就是我们访问到的控制器和方法,因为我们是访问的http服务,所以在http服务里面找,根据经验在home控制器...

0
0
发表于服务端专区
2019/10/11 17:38

Swoft 2.0.6 实现 Rpc服务客户端以及非Swoft框架外部调用

1.首先启动http跟rpc服务。 我这里是直接用docker-compose开启服务的。 大家也可以进入swoft容器用命令开启服务。 http命令:php bin/swoft http:start rpc命令:php bin/swoft rpc:start 2.RPC Server 配置参数 RPC 服务启动有单独启动和集成其它服务(Http/Websocket)两种方式,无论那种方式都首先要在 bean.php 配置RPC。 'rpcServer' => [ 'class' => ServiceServer::class, 'port' => 18307, ], 3.Http ...

0
1
发表了博客
2019/01/28 14:42

Swoft 缓存及Redis使用

配置 修改 /config/properties/cache.php 文件 return [ 'redis' => [ 'name' => 'redis', 'uri' => [ '127.0.0.1:6379' ], 'minActive' => 8, 'maxActive' => 8, 'maxWait' => 8, 'maxWaitTime' => 3, 'maxIdleTime' => 60, 'timeout' => 8, 'db' => 0, 'pr...

0
0
发表了博客
2020/05/09 15:39

移植TP5.1验证器至Swoft

> Swoft自带验证器,但是个人感觉使用起来没有TP中那么顺手,那么我们可以将TP5.1内的验证器移植至Swoft中进行使用 ### 1.复制TP中的文件进行移植处理 - 在swoft项目中app目录下新建目录`Utils/Validate`(位置和目录名可根据自我喜好) - 下载TP5.1源码,将以下文件复制到swoft项目`app/Utils/Validate`下 ```php thinkphp/library/think/Validate.php thinkphp/library/think/validate/ValidateRule.php ``` - 修改两个文件的命...

0
0
发表了博客
2019/01/22 22:59

swoft速学~redis引入

1.利用docker安装redis,并且映射端口 docker run --name myredis -d -p 6379:6379 redis:alpine 2.测试进入 docker exec -it myredis redis-cli 编写插入 set name cc 3.修改swoft配置文件 4.用的时候引入

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于开发技能专区
2019/09/10 09:58

为什么80%的码农都做不了架构师?

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。 所以,80%码农干上许多年,还是做不了架构师;正在辛苦工作的程序员们,你有没有下面几种感觉? ① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。 ② 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较...

5
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
13 评论
165 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部