reactive-slim
reactive-slim copied to clipboard
A bridge to use SlimPHP within ReactPHP
README
Reactive Slim is a bridge where you can pass your Slim instance and reap the benefit's of ReactPHP's event driven, non-blocking I/O usage of PHP.
The implementation run's on PHP7.0 and makes good use of PHP's Scalar Type hints.
Installation
composer require nigelgreenway/reactive-slim
Usage
After creating your Slim Instance, pass it to the following construction:
(new \ReactiveSlim\Server($slimInstance))
->run();
Please see the examples for more information or run php ./example/app-dev-mode.php
.
If are you are running via PHP locally, you are able to pass the following flags to customise both the host and the port:
-h 0.0.0.0
or --host=0.0.0.0
and -p 8686
or --port=8686
Restarting your ReactApp
There are 3 ways to restart your application (only tested on Linux - Solus, kernel 4.9.30-29.lts currently):
-
sh ./.tools/local-watch
runs via local PHP installation (requiresinotify-tools
to be installed via package manager) -
sh ./.tools/reactor
run via local PHP installation and requires thereactor.config.json
config -
sh ./.tools/docker-watch
run the app within a Docker container (requiresinotify-tools
to be installed via package manager)
Extra options
#withHost(<string>)
- The default host URL is 0.0.0.0
but is overridden by passing a string as the parameter
#withPort(<int>)
- The default port is 1337
but is overridden by passing an integer as the parameter
#withEnvironment(<int>)
- The default is 0
which is the Production
environment, the full options are:
-
ServerEnvironment::PRODUCTION
(0) -
ServerEnvironment::STAGING
(1) -
ServerEnvironment::TESTING
(2) -
ServerEnvironment::DEVELOPMENT
(3)
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email :author_email instead of using the issue tracker.
Credits
- Nigel Greenway
- All Contributors
This has been created to plug two great packages together:
License
The MIT License (MIT). Please see License File for more information.