ming / mx-fly
基于Swoole的现代高性能AOP和协程PHP框架
dev-master
2018-10-25 06:04 UTC
Requires
- php: >=7.0
- ext-swoole: >=2.1
- swoft/cache: ^1.0
- swoft/console: ^1.0
- swoft/db: ^1.1
- swoft/devtool: ^1.0
- swoft/framework: ^1.0
- swoft/http-client: ^1.0
- swoft/http-message: ^1.0
- swoft/http-server: ^1.0
- swoft/i18n: ^1.0
- swoft/memory: ^1.0
- swoft/process: ^1.0
- swoft/redis: ^1.0
- swoft/rpc: ^1.0
- swoft/rpc-client: ^1.0
- swoft/rpc-server: ^1.0
- swoft/service-governance: ^1.0
- swoft/session: ^1.0
- swoft/task: ^1.0
- swoft/view: ^1.0
- swoft/websocket-server: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.10
- phpunit/phpunit: ^5.7
- psy/psysh: @stable
- swoft/swoole-ide-helper: dev-master
This package is not auto-updated.
Last update: 2024-09-27 13:07:09 UTC
README
</a>
简介
第一个基于Swoole原生协程的高性能PHP协程全栈组件化框架,内置协程Web服务器和常用协程客户端,常驻内存,无需依赖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)
- 高性能路由器
- 快速灵活的参数验证器
- 别名机制
- 强大的日志组件
- 跨平台应用程序自动重载
文档
QQ群:548173319/778656850
环境要求
- PHP 7.0+
- Swoole 2.1.3+,需要协程和异步Redis客户端选项
- Hiredis
- Composer
安装
手动安装
- 克隆项目
- 安装需要
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
文件失败,可以在根目录下手动复制.env.example
并将其命名为.env
。注意,composer update
不会触发相关的复制操作。
# Server
PFILE=/tmp/swoft.pid
PNAME=php-swoft
TCPABLE=true
CRONABLE=false
AUTO_RELOAD=true
# HTTP
HTTP_HOST=0.0.0.0
HTTP_PORT=80
# WebSocket
WS_ENABLE_HTTP=true
# TCP
TCP_HOST=0.0.0.0
TCP_PORT=8099
TCP_PACKAGE_MAX_LENGTH=2048
TCP_OPEN_EOF_CHECK=false
# Crontab
CRONTAB_TASK_COUNT=1024
CRONTAB_TASK_QUEUE=2048
# Settings
WORKER_NUM=1
MAX_REQUEST=10000
DAEMONIZE=0
DISPATCH_MODE=2
LOG_FILE=@runtime/swoole.log
TASK_WORKER_NUM=1
管理
帮助命令
[root@swoft]# php bin/swoft -h
____ __ _
/ ___|_ _____ / _| |_
\___ \ \ /\ / / _ \| |_| __|
___) \ V V / (_) | _| |_
|____/ \_/\_/ \___/|_| \__|
Usage:
php bin/swoft {command} [arguments ...] [options ...]
Commands:
entity The group command list of database entity
gen Generate some common application template classes
rpc The group command list of rpc server
server The group command list of http-server
ws There some commands for manage the webSocket server
Options:
-v, --version show version
-h, --help show help
启动HTTP服务器
// Start HTTP Server
php bin/swoft start
// Start Daemonize HTTP Server
php bin/swoft start -d
// Restart HTTP server
php bin/swoft restart
// Reload HTTP server
php bin/swoft reload
// Stop HTTP server
php bin/swoft stop
启动WebSocket服务器
启动WebSocket服务器,可选是否支持HTTP处理。
// Star WebSocket Server
php bin/swoft ws:start
// Start Daemonize WebSocket Server
php bin/swoft ws:start -d
// Restart WebSocket server
php bin/swoft ws:restart
// Reload WebSocket server
php bin/swoft ws:reload
// Stop WebSocket server
php bin/swoft ws:stop
启动RPC服务器
启动独立的RPC服务器。
// Start RPC Server
php bin/swoft rpc:start
// Start Daemonize RPC Server
php bin/swoft rpc:start -d
// Restart RPC Server
php bin/swoft rpc:restart
// Reload RPC Server
php bin/swoft rpc:reload
// Stop RPC Server
php bin/swoft rpc:stop
变更日志
许可证
Swoft是一个开源软件,许可协议为LICENSE