luoxiaojun / sw-fw-less-app
Swoole Http Server App
Installs: 17
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=7.1
- ext-json: *
- ext-pdo: *
- ext-swoole: >=4.4.0
- luoxiaojun/sw-fw-less: dev-master
- symfony/translation: ~4.0.0|~5.3.0
Suggests
- ext-curl: *
- ext-redis: *
- symfony/translation: ~4.0.0|~5.3.0
This package is auto-updated.
Last update: 2024-10-24 17:14:13 UTC
README
Description
Swoole http server without framework
Features
- 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
Notice
- Don't include io operation in controller or middleware constructor
- Don't open preemptive scheduler
Requirements
- PHP 7.1+
- Swoole 4.2.10+
Installation
composer create-project luoxiaojun/sw-fw-less-app=dev-master sw-fw-less --prefer-dist -vvv
Deployment
Nginx
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
docker run -d -P luoxiaojun1992/sw-fw-less:latest
Usage
Start Server
php start.php
Demo Api
curl -i 'http://127.0.0.1:9501/ping'
Grpc Generator
cd tools && ./generate_grpc.sh path/to/grpc/bins/opt/grpc_php_plugin
Generated Files
app
├── grpc
│ ├── Demo
│ │ ├── GreetingClient.php -- php service client
│ │ ├── HelloReply.php -- request message class generated by protoc
│ │ └── HelloRequest.php -- response message class generated by protoc
│ └── GPBMetadata
│ └── Demo.php
│
└── services
├── GreetingClient.php -- php service client for sw-fw-less
├── GreetingInterface.php -- php service interface for sw-fw-less
└── GreetingService.php -- php server side service for sw-fw-less
Performance
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
Document
Please see document.