Skip to content

A bridge to use SlimPHP within ReactPHP

License

Notifications You must be signed in to change notification settings

NigelGreenway/reactive-slim

Folders and files

NameName
Last commit message
Last commit date
Jun 4, 2017
Jun 4, 2017
Jun 7, 2017
May 24, 2017
Jun 8, 2017
May 23, 2017
Apr 26, 2017
May 16, 2017
Apr 26, 2017
May 22, 2017
Apr 26, 2017
Apr 26, 2017
Jun 4, 2017
Jun 4, 2017
May 16, 2017
Jun 4, 2017
May 23, 2017
Jun 4, 2017
May 19, 2017
May 16, 2017
May 16, 2017
Jun 4, 2017

Repository files navigation

Latest Version Software License Build Status Total Downloads

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 (requires inotify-tools to be installed via package manager)
  • sh ./.tools/reactor run via local PHP installation and requires the reactor.config.json config
  • sh ./.tools/docker-watch run the app within a Docker container (requires inotify-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

This has been created to plug two great packages together:

License

The MIT License (MIT). Please see License File for more information.