Download the PHP package bingcool/swoolefy without Composer
On this page you can find all versions of the php package bingcool/swoolefy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package swoolefy
swoolefy
一、简介
swoolefy是一个基于swoole实现的轻量级高性能的常驻内存型的协程级应用服务框架,
高度支持httpApi,websocket,udp服务器,以及基于tcp实现可扩展的rpc服务,worker多进程消费模型
同时支持composer包方式安装部署项目。基于实用主义设计出发,swoolefy抽象Event事件处理类,
实现与底层的回调的解耦,支持协程单例调度,同步|异步调用,全局事件注册,心跳检查,异步任务,多进程(池),连接池等,
内置等常用组件等.
二、建议版本
1、swoolefy-6.x.x 版本:
目前主分支,最低要求
2、swoolefy-4.8-lts 版本:
长期维护分支,最低要求
选择哪个版本?
1、如果确定项目是使用php81+的,那么直接选择 安装,然后选择 作为项目分支安装最新稳定版本
2、如果确定项目是使用 的,那么选择 swoole-v4.8+ 版本来进行编译安装(不能直接使用 swoole-cli-v4.8+ 了, 因为其内置的是php8.1,与你的项目的php7不符合) 所有只能通过编译swoole源码的方式来生成swoole扩展,然后选择 作为项目分支稳定版本
3、依赖编译: ./configure --enable-openssl --enable-sockets --enable-swoole-curl --enable-swoole-pgsql
4、若不希望自己编译构建,也可以直接使用本目录下的Dockerfile来构建镜像:
三、实现的功能特性
基础特性
- [x] 支持架手脚一键创建项目自动生成最小项目骨架
- [x] 支持swagger一键生成api文档
- [x] 支持分组路由, 路由中间件middleware, 前置路由组件, 后置路由组件middleware,多模块应用
- [x] 支持自定义注册不同根命名空间,快速多项目部署
- [x] 支持httpServer,实用轻量Api接口开发
- [x] 支持多协议websocketServer、udpServer、mqttServer
- [x] 支持基于tcp实现的rpc服务,开放式的系统接口,可自定义协议数据格式,并提供rpc-client协程组件
- [x] 支持DI容器,组件IOC、配置化,Channel公共组件池
- [x] 支持协程单例注册,协程上下文变量寄存
- [x] 支持mysql、postgreSql、redis协程组件
- [x] 支持全局logger组件、trace链路追踪组件
- [x] 支持分布式锁组件
- [x] 支持滑动窗口的流量速率组件
- [x] 支持mysql协程连接池
- [x] 支持redis协程池
- [x] 支持curl协程池
- [x] 支持protobuf buffer的数据接口结构验证,压缩传输等
- [x] 支持异步务管理TaskManager
- [x] 定时器管理TickManager
- [x] 内存表管理TableManager
- [x] 支持自定义进程管理ProcessManager,进程池管理PoolsManger
- [x] 支持底层异常错误的所有日志捕捉,支持全局日志,包括debug、info、notice、warning、error等级
- [x] 支持自定义进程的redis,rabbitmq,kafka的订阅发布,消息队列等
- [x] 支持热更新reload worker 监控以及更新
- [x] 支持定时的系统信息采集,并以订阅发布,udp等方式收集至存贮端
- [x] 支持命令行形式高度封装启动|停止控制的脚本,简单命令即可管理整个框架, 并对外提供控制启动|停止|重启|查看状态的api接口,可开发成可视化控制页面
高级特性
-
[x] 支持cron计划任务模式. 类似crontab,支持local|fork|remote url三种方式
支持方式 说明 local 自定义进程内定时执行代码 fork 自定义进程定时拉起一个新的进程,由新的进程去执行任务,可异步,类似laravel的schedule计划任务 url 自定义进程定时发起远程url请求,可设置callback回调处理结果 - [x] 支持daemon模式.worker下后台daemon模式的多进程协程消费模型,包括进程自动拉起,进程数动态调整,进程健康状态监控
- [x] 支持console终端脚本模式. 跑完脚本自动退出,可用于修复数据、数据迁移等临时脚本功能
- [ ] 支持分布式服务注册(zk,etcd)
四、适配协程环境组件
组件名称 | 安装 | 说明 |
---|---|---|
predis | composer require predis/predis:~1.1.7 | predis组件、或者Phpredis扩展 |
mongodb | composer require mongodb/mongodb:~1.3 | mongodb组件,需要使用mongodb必须安装此组件 |
rpc-client | composer require bingcool/rpc-client:dev-master | swoolefy的rpc客户端组件,当与rpc服务端通信时,需要安装此组件,支持在php-fpm中使用 |
cron-expression | composer require dragonmantank/cron-expression:~3.3.0 | crontab计划任务组件,类似Linux的crobtab |
redis lock | composer require malkusch/lock | Redis锁组件 |
amqp | composer require php-amqplib/php-amqplib:~3.5.0 | amqp php原生实现amqp协议客户端 |
ffmpeg | composer require php-ffmpeg/php-ffmpeg:~1.1.0 | php proc-open 调用ffmpeg处理音视频 |
validate | composer require vlucas/valitron | validate数据校验组件 |
guzzlehttp | composer require guzzlehttp/guzzle | guzzlehttp 组件 |
oauth 2.0 | composer require league/oauth2-server | oauth 2.0 授权认证组件 |
bingcool/library | composer require bingcool/library | library组件库 |
五、bingcool/library 是swoolefy require 内置库,专为swoole协程实现的组件库
实现了包括:
- [x] Db ORM Model 组件(支持mysql、 postSql、 sqlite、 Oracle)
- [x] DB Query Builder 链式操作查询组件
- [x] Kafka Producer Consumer组件
- [x] Rabbitmq Queue组件
- [x] Rabbitmq Delay Queue 死信延迟队列组件
- [x] Redis Cache组件
- [x] Redis Queue队列组件
- [x] Redis Delay Queue延迟队列组件
- [x] RedisLock锁组件
- [x] RateLimit限流组件
- [x] Redis Public Subscribe组件
- [x] Db、Redis、 Curl协程连接池组件
- [x] UUid 分布式自增id组件
- [x] Curl基础组件
- [x] Jwt 组件
- [x] Validate 组件
- [x] Encrypt 加密解密组件
- [x] Captcha 验证码组件
- [x] translation 国际化(I18N)
github: https://github.com/bingcool/library
六、安装
1、先配置环境变量(必须设置)
2、创建项目
七、添加项目入口启动文件cli.php,并定义你的项目目录,命名为App
八、执行创建你定义的App项目
九、启动http应用项目
十、访问
默认端口是9502,可以通过 http://localhost:9502 访问默认控制器
至此一个最简单的http的服务就创建完成了,更多例子请参考项目下Test的demo
十一、定义组件
1、应用层配置文件:Config/app.php
2、组件Component.php
十二、使用组件
十三、默认协议层全局配置文件 Protocol/conf.php
开发者可以根据实际使用适当调整配置项
十四、路由文件(类似laravel路由)
1、Router/api.php
十五、数据库操作
十六、协程单例,协程并发
-
协程单例
- 协程并发
十七、swagger接口文档生成
在Test/Module/Order/Validation下,每个文件对应一个Controller的方法,可以使用php8的attribute注解定义好接口,然后执行 php swag.php Test 即可自动生成openapi.yaml文件 在浏览器直接访问: http:127.0.0.1:9501/swagger.html
License
MIT
Copyright (c) 2017-2025 zengbing huang
All versions of swoolefy with dependencies
ext-swoole Version >=5.1.0
ext-json Version *
ext-curl Version *
psr/log Version *
ext-pcntl Version *
ext-posix Version *
ext-pdo Version *
ext-redis Version *
ext-sockets Version *
ext-mbstring Version *
ext-openssl Version *
dragonmantank/cron-expression Version ~3.3.3
vlucas/phpdotenv Version ~5.6
symfony/console Version ~6.4.2
symfony/translation Version 6.4.x-dev
zircote/swagger-php Version 4.8.7
bingcool/library Version dev-master