cydrickn / swoole-runtime
Swoole / Openswoole Runtime
Requires
- openswoole/core: ^22.2
- runtime/swoole: ^0.4.0
- symfony/runtime: ^7.2
Requires (Dev)
- openswoole/ide-helper: ~22.0.1
- symfony/http-foundation: ^7.2
- symfony/http-kernel: ^7.2
Suggests
- cydrickn/php-watcher: Allows to hot reload when any part of the code have been change
README
A Symfony Runtime package that provides OpenSwoole integration for high-performance PHP applications. This package extends Symfony's Runtime component to support OpenSwoole server and hot reloading, enabling you to run your Symfony applications with improved performance and concurrent request handling.
Features
- OpenSwoole server integration for Symfony applications
- Support for both HTTP Kernel and callable applications
- Hot reload capability for development (optional)
- Configurable server settings
- Environment variable support for configuration
Requirements
- PHP 8.1 or higher
- OpenSwoole extension
- Symfony 7.2 or higher
Installation
You can install the package via Composer:
composer require cydrickn/runtime
Usage
Basic Usage
To use the runtime in your Symfony application, create a runtime.php
file in your project root:
APP_RUNTIME=\\Cydrickn\\Runtime\\Runtime php ./public/index.php
Configuration Options
The runtime supports various configuration options that can be set either in the options array or through environment variables:
Option | Environment Variable | Default | Description |
---|---|---|---|
host | SWOOLE_HOST | 127.0.0.1 | Server host address |
port | SWOOLE_PORT | 8000 | Server port |
mode | SWOOLE_MODE | 2 | Server mode (SWOOLE_PROCESS) |
sock_type | SWOOLE_SOCK_TYPE | 1 | Socket type (SWOOLE_SOCK_TCP) |
hot_reload | SWOOLE_HOT_RELOAD | 0 | Enable hot reload (1) or disable (0) |
base_path | SWOOLE_BASE_PATH | DIR | Base path for hot reload |
Hot Reload
For development, you can enable hot reload functionality by installing the optional cydrickn/php-watcher
package:
composer require --dev cydrickn/php-watcher
in your .env
SWOOLE_HOT_RELOAD=1
Using .env File
You can also add the runtime configuration to your .env
file:
APP_RUNTIME=\\Cydrickn\\Runtime\\Runtime
Then run your application normally:
php ./public/index.php
Development
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This package is open-sourced software licensed under the MIT License.
Author
- Cydrick Nonog (cydrick.dev@gmail.com)
Credits
This package is built on top of: