Library of Swoole
- How to Contribute
- Dockerized Local Development
- Compatibility Patch (Swoole version <= v4.4.12)
- Coding Style Checks and Fixes
- Third Party Libraries
Just open new pull requests (and we need unit tests for new features)
- 4.6.x: For Swoole 4.6, which supports PHP 7.2+
- 4.5.x: For Swoole 4.5, which supports PHP 7.1+
First, you need to build the base image:
docker compose build image
Then run the following command to autoload PHP classes/files (no extra Composer packages to be installed):
docker compose run --rm composer install
Secondly, run the next command to start Docker containers:
docker compose up
Alternatively, if you need to rebuild the service(s) and to restart the containers:
docker compose build image --no-cache docker compose up --force-recreate
Now you can create an
docker compose exec app bash
And run commands inside the container:
Or you can tell to run it directly:
docker compose exec app composer test
Once you have Docker containers started (as discussed in previous section), you can use commands like following to run examples under folder examples.
docker compose exec app php examples/mysqli/base.php docker compose exec app php examples/pdo/base.php docker compose exec app php examples/redis/base.php
There is a fantastic example showing how to use Swoole as a proxy to serve a WordPress website using PHP-FPM. Just open URL http://127.0.0.1 in the browser and check what you see there. Source code of the example can be found here.
Here are some more examples to make FastCGI calls to PHP-FPM:
docker compose exec app php examples/fastcgi/greeter/call.php docker compose exec app php examples/fastcgi/greeter/client.php docker compose exec app php examples/fastcgi/proxy/base.php docker compose exec app php examples/fastcgi/var/client.php
define('SWOOLE_USE_SHORTNAME', true); // or false (it depends on you)
To update Composer packages (optional):
docker compose run --rm composer update
To check coding standard violations:
docker compose run --rm composer cs-check
To correct coding standard violations automatically:
docker compose run --rm composer cs-fix
Here are all the third party libraries used in this project:
- The FastCGI part is derived from Composer package lisachenko/protocol-fcgi.
You can find the licensing information of these third party libraries here.
This project follows the Apache 2 license.