Swoft 基于 Swoole 扩展实现的 PHP 微服务协程框架

发布于 2021-07-18 21:39:29 字数 9299 浏览 1823 评论 0

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。

有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。

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

框架特性

首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。

协程框架

Swoft 是首个基于 Swoole 原生协程的注解式框架,自带常驻内存以及 Swoole 其它功能的封装。

连接池

框架自带 Mysql/Redis/Rpc 高效连接池,且实现所有连接断线重连。开发者不用关心连接池,相应组件已经实现。

切面编程

框架容器管理的所有对象,都可以使用 AOP。使用AOP 可以使用在不改变实例内部的情况下,对实例对象的行为进行控制。

RPC

RPC 服务分为 RPC Server 和 RPC Client,框架提供了类似 Dubbo 更为优雅的方式使用 RPC 服务

数据库

数据提供模型 和 Builder 两种方式操作,数据库的封装高度兼容 Laravel,方便 Phper 快速切换到 Swoft

微服务

Swoft 完美与 Istio/Envoy 等 Service mesh 框架契合,同时还为中小型提供一套快速构建微服务治理组件,包括服务注册与发现、服务熔断、服务限流,以及配置中心。

功能特色

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

安装

Composer

composer create-project swoft/swoft swoft

开始启动

Http server

[root@swoft swoft]# php bin/swoft http:start

WebSocket server

[root@swoft swoft]# php bin/swoft ws:start

RPC server

[root@swoft swoft]# php bin/swoft rpc:start

核心组件

Component NamePackagist Version
swoft-annotation
swoft-config
swoft-db
swoft-framework
swoft-i18n
swoft-proxy
swoft-rpc-client
swoft-stdlib
swoft-tcp-server
swoft-aop
swoft-connection-pool
swoft-error
swoft-http-message
swoft-log
swoft-redis
swoft-rpc-server
swoft-task
swoft-validator
swoft-bean
swoft-console
swoft-event
swoft-http-server
swoft-process
swoft-rpc
swoft-server
swoft-tcp
swoft-websocket-server

扩展组件

Component NamePackagist Version
swoft-apollo
swoft-breaker
swoft-cache
swoft-crontab
swoft-consul
swoft-limiter
swoft-view
swoft-whoops
swoft-session

项目地址:https://github.com/swoft-cloud/swoft

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

1CH1MKgiKxn9p

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

JackDx

文章 0 评论 0

信远

文章 0 评论 0

yaoduoduo1995

文章 0 评论 0

霞映澄塘

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文