Skip to content

Latest commit

 

History

History
114 lines (81 loc) · 4.2 KB

File metadata and controls

114 lines (81 loc) · 4.2 KB

    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

文档

中文文档

  1. QQ Swoft 官方1群: 548173319

  2. QQ Swoft 官方2群: 778656850

仓库简介

swoft-docker是一个基于docker-compose的服务编排仓库,让你可以快速基于docker容器化搭建配套的swoft环境。

注意:找到 swoft 项目的所在的目录,让 swoft-docker 项目和 swoft 项目处于同一级目录下

环境需求

  1. 安装docker且docker engine至少 >= 17.06.0+

  2. 安装docker-compose且docker-compose至少 >= 1.14.0

参见:Compose file version 3 reference

使用

./sync.sh <options>
Available options:
   install		 Installs docker-sync gem on the host machine.
   up [services]	 Starts docker-sync and runs docker compose.
   down			 Stops containers and docker-sync.
   bash			 Opens bash on the workspace.
   sync			 Manually triggers the synchronization of files.
   clean		 Removes all files from docker-sync.

env-example 复制为 .env,通过运行 ./sync.sh up 来构建镜像和创建容器。

docker for linux

在这里,如果你的操作系统是 Linux 的话,那么,建议修改 .env 下的几个配置项

  • APP_CODE_PATH_CONTAINER_MODE=:cached
docker-compose -f docker-compose.yml up

关于docker for mac磁盘同步问题

这里,我们借助了 docker-sync 来解决mac系统下磁盘同步的问题。

./sync.sh install

在这里,如果你的操作系统是 OSX 的话,那么,你必须修改 .env 下的几个配置项

  • APP_CODE_PATH_CONTAINER_MODE=:nocopy
  • DOCKER_SYNC_STRATEGY=native_osx
./sync.sh up

协议

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