Download the PHP package tourze/workerman-server-bundle without Composer
On this page you can find all versions of the php package tourze/workerman-server-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package workerman-server-bundle
Workerman Server Bundle
中文
A high-performance HTTP server for Symfony applications using Workerman. Make your Symfony application faster with minimal changes.
Table of Contents
- Features
- Requirements
- Installation
- Quick Start
- Commands
- Architecture
- Performance Optimizations
- Development Mode
- Production Deployment
- Advanced Usage
- Troubleshooting
- Contributing
- License
Features
- High Performance: Built on Workerman's event-driven architecture
- Symfony Integration: Full support for Symfony's request/response lifecycle
- Static File Serving: Automatic static file serving with MIME type detection
- Long-lived Connections: HTTP keep-alive support
- Process Management: Built-in process management (start/stop/restart/reload)
- Auto-reload: File monitoring and auto-reload in development mode
- Memory Protection: Automatic worker restart after max requests
- PSR Standards: PSR-7, PSR-15, PSR-17 compliant
Requirements
- PHP 8.1+
- Symfony 6.4+
- ext-pcntl
- ext-posix
- ext-fileinfo
Installation
Add the bundle to your config/bundles.php:
Quick Start
Starting the HTTP Server
The server will start on http://127.0.0.1:8080 by default.
Commands
workerman:http
The main command to manage the Workerman HTTP server.
Description: Start Workerman HTTP server for your Symfony application
Usage:
Available actions:
start: Start the serverstop: Stop the serverrestart: Restart the serverstatus: Show server statusreload: Gracefully reload all workersconnections: Show current connections
Options:
-d: Run as daemon (for start/restart actions)
Features:
- Serves both dynamic Symfony routes and static files
- Automatic worker restart after 10,000 requests (configurable)
- File monitoring in debug mode for auto-reload
- Integrated Messenger consumer support
- Keep-alive connection support
Architecture
Request Flow
- Workerman receives HTTP request
- Request is converted to PSR-7 ServerRequest
- Static file check (serves from
public/directory if exists) - PSR-7 request is converted to Symfony Request
- Symfony kernel handles the request
- Symfony Response is converted to PSR-7 Response
- Response is sent back through Workerman
- Kernel terminate event is triggered
Components
- WorkermanHttpCommand: Console command for server management
- OnMessage: Core request handler
- PsrRequestFactory: Converts Workerman requests to PSR-7
- WorkermanResponseEmitter: Sends PSR-7 responses to clients
- ProperHeaderCasingResponseFactory: Ensures proper HTTP header casing
Performance Optimizations
- Memory Management: Workers automatically restart after processing 10,000 requests
- File Monitoring: Only enabled in debug mode to avoid overhead
- Static File Serving: Direct file serving bypasses Symfony kernel
- Connection Reuse: HTTP keep-alive reduces connection overhead
- Error Tracking: Optimized backtrace with ignored vendor files
Development Mode
In development mode (APP_ENV=dev), the bundle provides:
- Automatic file monitoring for changes in:
config/src/templates/translations/
- Auto-reload when PHP, YAML files change
- Detailed error output
Production Deployment
For production use:
Advanced Usage
Custom Request Handlers
You can extend the request handling by implementing PSR-15 middleware:
Integration with Symfony Messenger
The bundle automatically starts a Messenger consumer worker when the HTTP server starts, allowing you to process async messages without separate processes.
Troubleshooting
Server won't start
- Check if port 8080 is already in use
- Ensure PHP has pcntl and posix extensions enabled
- Check file permissions for pid and log files
High memory usage
- Reduce max request count per worker
- Check for memory leaks in your application code
- Monitor with
workerman:http status
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
The MIT License (MIT). Please see License File for more information.
All versions of workerman-server-bundle with dependencies
ext-pcntl Version *
ext-posix Version *
fidry/cpu-core-counter Version ^1.2.0
league/mime-type-detection Version ^1.0
nyholm/psr7 Version ^1.8.2
psr/container Version ^1.1|^2.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.1 || ^2.0
psr/http-server-handler Version ^1.0
psr/log Version ^3|^2|^1
symfony/config Version ^7.3
symfony/console Version ^7.3
symfony/dependency-injection Version ^7.3
symfony/framework-bundle Version ^7.3
symfony/http-foundation Version ^7.3
symfony/http-kernel Version ^7.3
symfony/process Version ^7.3
symfony/property-access Version ^7.3
symfony/psr-http-message-bridge Version ^7.3
symfony/service-contracts Version ^3.6
symfony/yaml Version ^7.3
tourze/backtrace-helper Version 1.*
tourze/bundle-dependency Version 1.*
tourze/psr15-chain-request-handler Version 0.0.*
tourze/psr15-symfony-request-request-handler Version 0.1.*
tourze/symfony-dependency-service-loader Version 1.0.*
tourze/symfony-runtime-context-bundle Version 1.0.*
tourze/workerman-file-monitor Version 0.0.*
tourze/workerman-process-worker Version 0.2.*
tourze/workerman-psr-logger Version 0.0.*
tourze/workerman-runtime-context-bundle Version 1.0.*
workerman/coroutine Version ^1.1
workerman/psr7 Version ^2.0
workerman/workerman Version ^5.1