项目作者: tbbug

项目描述 :
基于swoft的小程序服务端,结合websocket 主功能开发
高级语言: PHP
项目地址: git://github.com/tbbug/swoft_wxapp.git
创建时间: 2019-02-20T06:17:49Z
项目社区:https://github.com/tbbug/swoft_wxapp

开源协议:

下载




swoft

Latest Version
Build Status
Php Version
Swoole Version
Hiredis Version
Swoft Doc
Swoft License

English

简介

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

  • 基于 Swoole 扩展
  • 内置协程 HTTP, TCP, WebSocket 网络服务器
  • 强大的 AOP (面向切面编程)
  • 灵活完善的注解功能
  • 全局的依赖注入容器
  • 基于 PSR-7 的 HTTP 消息实现
  • 基于 PSR-14 的事件管理器
  • 基于 PSR-15 的中间件
  • 基于 PSR-16 的缓存设计
  • 可扩展的高性能 RPC
  • 完善的服务治理,熔断,降级,负载,注册与发现
  • 数据库 ORM
  • 通用连接池
  • 协程 Mysql, Redis, RPC, HTTP 客户端
  • 协程和同步阻塞客户端无缝自动切换
  • 协程、异步任务投递
  • 自定义用户进程
  • RESTful 支持
  • 国际化(i18n)支持
  • 高性能路由
  • 快速灵活的参数验证器
  • 别名机制
  • 强大的日志系统
  • 跨平台热更新自动 Reload

文档

中文文档

QQ 交流群1: 548173319(已满)
QQ 交流群2: 778656850

环境要求

  1. PHP 7.0 +
  2. Swoole 2.1.3 +, 需开启协程和异步Redis
  3. Hiredis
  4. Composer

安装

手动安装

  • Clone 项目
  • 安装依赖 composer install

Composer 安装

  • composer create-project swoft/swoft swoft

Docker 安装

  • docker run -p 80:80 swoft/swoft

Docker-Compose 安装

  • cd swoft
  • docker-compose up

配置

若在执行 composer install 的时候由程序自动复制环境变量配置文件失败,则可手动复制项目根目录的 .env.example 并命名为 .env,注意在执行 composer update 时并不会触发相关的复制操作

  1. # Server
  2. PFILE=/tmp/swoft.pid
  3. PNAME=php-swoft
  4. TCPABLE=true
  5. CRONABLE=false
  6. AUTO_RELOAD=true
  7. # HTTP
  8. HTTP_HOST=0.0.0.0
  9. HTTP_PORT=80
  10. # WebSocket
  11. WS_ENABLE_HTTP=true
  12. # TCP
  13. TCP_HOST=0.0.0.0
  14. TCP_PORT=8099
  15. TCP_PACKAGE_MAX_LENGTH=2048
  16. TCP_OPEN_EOF_CHECK=false
  17. # Crontab
  18. CRONTAB_TASK_COUNT=1024
  19. CRONTAB_TASK_QUEUE=2048
  20. # Settings
  21. WORKER_NUM=1
  22. MAX_REQUEST=10000
  23. DAEMONIZE=0
  24. DISPATCH_MODE=2
  25. LOG_FILE=@runtime/swoole.log
  26. TASK_WORKER_NUM=1

管理

帮助命令

  1. [root@swoft]# php bin/swoft -h
  2. ____ __ _
  3. / ___|_ _____ / _| |_
  4. \___ \ \ /\ / / _ \| |_| __|
  5. ___) \ V V / (_) | _| |_
  6. |____/ \_/\_/ \___/|_| \__|
  7. Usage:
  8. php bin/swoft {command} [arguments ...] [options ...]
  9. Commands:
  10. entity The group command list of database entity
  11. gen Generate some common application template classes
  12. rpc The group command list of rpc server
  13. server The group command list of http-server
  14. ws There some commands for manage the webSocket server
  15. Options:
  16. -v, --version show version
  17. -h, --help show help

HTTP Server启动

是否同时启动RPC服务器取决于.env文件配置

  1. // 启动服务,根据 .env 配置决定是否是守护进程
  2. php bin/swoft start
  3. // 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置
  4. php bin/swoft start -d
  5. // 重启
  6. php bin/swoft restart
  7. // 重新加载
  8. php bin/swoft reload
  9. // 关闭服务
  10. php bin/swoft stop

WebSocket Server启动

启动WebSocket服务器,可选是否同时支持http处理

  1. // 启动服务,根据 .env 配置决定是否是守护进程
  2. php bin/swoft ws:start
  3. // 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置
  4. php bin/swoft ws:start -d
  5. // 重启
  6. php bin/swoft ws:restart
  7. // 重新加载
  8. php bin/swoft ws:reload
  9. // 关闭服务
  10. php bin/swoft ws:stop

RPC Server启动

启动独立的RPC服务器

  1. // 启动服务,根据 .env 配置决定是否是守护进程
  2. php bin/swoft rpc:start
  3. // 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置
  4. php bin/swoft rpc:start -d
  5. // 重启
  6. php bin/swoft rpc:restart
  7. // 重新加载
  8. php bin/swoft rpc:reload
  9. // 关闭服务
  10. php bin/swoft rpc:stop

更新日志

更新日志

协议

Swoft 的开源协议为 Apache-2.0,详情参见LICENSE