Swoole http server without framework
- Faster Router
- Router & Global Middleware
- Model(MySQL & Eleasticsearch、Json Serializable、Array Accessable)
- Query Builder(MySQL & Elasticsearch)
- Connection Pool(MySQL、Redis、Experimental AMQP-0-9-1、Experimental HBase)
- Storage(File、Qiniu、Alioss)
- Full Coroutine
- Log(Based on Monolog)
- Distributed Lock(Based on Redis)
- Parameter Validator
- Monitor
- AMQP-0-9-1
- Zipkin Trace
- Dynamic Fault Injection
- Hot Reload(including biz code、config、router, recommended for dev only)
- Experimental Grpc(must open http2)
- Apollo Config Center
- Don't include io operation in controller or middleware constructor
- Don't open preemptive scheduler
- Namespace conflicts
- Duplication of functions without namespace
- Composer 1.x
- PHP 7.1+
- Swoole 4.2.10+
composer create-project luoxiaojun/sw-fw-less-app=dev-master sw-fw-less --prefer-dist -vvv
Nginx Config Demo(Modify according to your requirements)
server {
listen 80;
## Modify according to your requirements
server_name www.sw-fw-less.dev;
location / {
## Modify according to your requirements
proxy_pass http://127.0.0.1:9501;
}
}
docker run -d -P luoxiaojun1992/sw-fw-less:latest
Start Server
php start.php
Demo Api
curl -i 'http://127.0.0.1:9501/ping'
cd tools && ./generate_grpc.sh path/to/grpc/bins/opt/grpc_php_plugin
Environment:
- OS: MacOS 10.14.1
- CPU: 2.3 GHz Intel Core i5 4 Cores
- Memory: 16 GB 2133 MHz LPDDR3
- Swoole: 4.2.9
- PHP: 7.2.8
- Redis: 4.0.11
- API: http://127.0.0.1:9501/redis?key=key
- Concurrent: 300
- Tool: JMeter 4.0 r1823414
Please see document.
- Add helper functions namespace