{"id":13607463,"url":"https://github.com/symfony-swoole/swoole-bundle","last_synced_at":"2025-12-13T14:02:29.990Z","repository":{"id":197612281,"uuid":"698971622","full_name":"symfony-swoole/swoole-bundle","owner":"symfony-swoole","description":"Symfony Swoole Bundle","archived":false,"fork":false,"pushed_at":"2025-03-28T03:36:35.000Z","size":3162,"stargazers_count":50,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-29T01:03:32.125Z","etag":null,"topics":["async","bundle","openswoole","php","swoole","symfony","symfony-bundle"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/symfony-swoole.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Rastusik","symfony-swoole"]}},"created_at":"2023-10-01T14:45:44.000Z","updated_at":"2025-03-26T09:43:11.000Z","dependencies_parsed_at":"2023-11-29T09:45:45.112Z","dependency_job_id":"ef83c18b-76a5-4a9e-bf81-0381d3c95f00","html_url":"https://github.com/symfony-swoole/swoole-bundle","commit_stats":{"total_commits":788,"total_committers":21,"mean_commits":"37.523809523809526","dds":0.6763959390862944,"last_synced_commit":"546bf12c6ed7725da96d9b74dfaaf50daef6f625"},"previous_names":["symfony-swoole/swoole-bundle","openswoole-bundle/openswoole-bundle"],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symfony-swoole%2Fswoole-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symfony-swoole%2Fswoole-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symfony-swoole%2Fswoole-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symfony-swoole%2Fswoole-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/symfony-swoole","download_url":"https://codeload.github.com/symfony-swoole/swoole-bundle/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276162,"owners_count":20912288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","bundle","openswoole","php","swoole","symfony","symfony-bundle"],"created_at":"2024-08-01T19:01:18.858Z","updated_at":"2025-12-13T14:02:29.985Z","avatar_url":"https://github.com/symfony-swoole.png","language":"PHP","funding_links":["https://github.com/sponsors/Rastusik","https://github.com/sponsors/symfony-swoole"],"categories":["PHP"],"sub_categories":[],"readme":"# Swoole Bundle\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/1d73a214622bba769171/maintainability)](https://codeclimate.com/github/symfony-swoole/swoole-bundle/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/1d73a214622bba769171/test_coverage)](https://codeclimate.com/github/symfony-swoole/swoole-bundle/test_coverage)\n[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)\n\nSymfony integration with [Open Swoole](https://openswoole.com/) to speed up your applications.\n\n| Sponsored by:                         |                                                                                                 |\n|---------------------------------------|-------------------------------------------------------------------------------------------------|\n| [Blackfire.io](https://blackfire.io/) | [\u003cimg src=\"docs/img/blackfire-io.png\" width=\"100\" alt=\"Blackfire.io\"/\u003e](https://blackfire.io/)  |\n---\n\n## Build Matrix\n\n| CI Job | Branch [`master`](https://github.com/symfony-swoole/swoole-bundle/tree/master)                                                                                  | Branch [`develop`](https://github.com/symfony-swoole/swoole-bundle/tree/develop)                                                                             |\n|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Circle | [![CircleCI](https://circleci.com/gh/symfony-swoole/swoole-bundle/tree/master.svg?style=svg)](https://circleci.com/gh/symfony-swoole/swoole-bundle/tree/master) | [![CircleCI](https://circleci.com/gh/symfony-swoole/swoole-bundle/tree/develop.svg?style=svg)](https://circleci.com/gh/symfony-swoole/swoole-bundle/tree/develop) |\n| Qlty   | [![Code Coverage](https://qlty.sh/gh/symfony-swoole/projects/swoole-bundle/coverage.svg)](https://qlty.sh/gh/symfony-swoole/projects/swoole-bundle)                   | [![Maintainability](https://qlty.sh/gh/symfony-swoole/projects/swoole-bundle/maintainability.svg)](https://qlty.sh/gh/symfony-swoole/projects/swoole-bundle)               |\n\n## Table of Contents\n\n- [Swoole Bundle](#swoole-bundle)\n  - [Build Matrix](#build-matrix)\n  - [Table of Contents](#table-of-contents)\n  - [Quick start guide](#quick-start-guide)\n  - [Features](#features)\n  - [Requirements](#requirements)\n    - [Current version](#current-version)\n    - [Future versions](#future-versions)\n    - [Open Swoole](#open-swoole)\n      - [Version check](#version-check)\n      - [Installation](#installation)\n\n## Quick start guide\n\n1. Make sure you have installed proper Open Swoole PHP Extension and pass other [requirements](#requirements).\n\n2. (optional) Create a new symfony project\n\n    ```bash\n    composer create-project symfony/skeleton project\n\n    cd ./project\n    ```\n\n3. Install bundle in your Symfony application\n\n    ```bash\n    composer require swoole-bundle/swoole-bundle\n    ```\n\n   If using OpenSwoole, you need to also install the core package:\n\n    ```bash\n    composer require openswoole/core\n    ```\n\n4. Edit `config/bundles.php`\n\n    ```php\n    return [\n        // ...other bundles\n        SwooleBundle\\SwooleBundle\\Bridge\\Symfony\\Bundle\\SwooleBundle::class =\u003e ['all' =\u003e true],\n    ];\n    ```\n\n5. Run Swoole HTTP Server\n\n    ```bash\n    bin/console swoole:server:run\n    ```\n\n6. Enter http://localhost:9501\n\n7. You can now configure bundle according to your needs\n\n## Features\n\n-   Built-in API Server\n\n    Swoole Bundle API Server allows managing Swoole HTTP Server in real-time.\n\n    -   Reload worker processes\n    -   Shutdown server\n    -   Access metrics and settings\n\n-   Improved static files serving\n\n    Swoole HTTP Server provides a default static files handler, but it lacks supporting many `Content-Types`. To overcome this issue, there is a configurable Advanced Static Files Server. Static files serving remains enabled by default in the development environment. Static files directory defaults to `%kernel.project_dir%/public`. To configure your custom mime types check [configuration reference](docs/configuration-reference.md) (key `swoole.http_server.static.mime_types`).\n\n-   Symfony Messenger integration\n\n    _Available since version: `0.6`_\n\n    Swoole Server Task Transport has been integrated into this bundle to allow easy execution of asynchronous actions. Documentation of this feature is available [here](docs/swoole-task-symfony-messenger-transport.md).\n\n-   Hot Module Reload (HMR) for development **ALPHA**\n\n    Since Swoole HTTP Server runs in Event Loop and does not flush memory between requests, to keep DX equal with normal servers, this bundle uses code replacement technique, using `inotify` PHP Extension to allow continuous development. It is enabled by default (when the extension is found) and requires no additional configuration. You can turn it off in bundle configuration.\n\n    _Remarks: This feature currently works only on a Linux host machine. It probably won't work with Docker, and it is possible that it works only with configuration: `swoole.http_server.running_mode: process` (default)._\n  \n-   Access logs, (disabled by default) logs are configurable is a same way as apache mod log. Documentation of this feature is available [here](docs/swoole-access-logs.md).\n\n## Requirements\n\n### Current version\n\n-   PHP version `\u003e= 8.2 \u0026\u0026 \u003c= 8.4`\n-   Open Swoole PHP Extension `^v25.2.0`\n-   Swoole PHP Extension `^6.0.0`\n-   Symfony `^6.4 || ^7.2`\n\nAdditional requirements to enable specific features:\n\n-   [Inotify PHP Extension](https://pecl.php.net/package/inotify) `^2.0.0` to use Hot Module Reload (HMR)\n    -   When using PHP 8, inotify version `^3.0.0` is required\n\n### Swoole\n\nThe bundle requires one of those extensions:\n- [Swoole PHP Extension](https://github.com/swoole/swoole-src) version `6.0.0` or higher. Active bug fixes are provided only for the latest version.\n- [Open Swoole PHP Extension](https://github.com/openswoole/ext-openswoole) version `22.0.0` or higher. Active bug fixes are provided only for the latest version.\n\n#### Version check\n\nTo check your installed version you can run the following command:\n\n```sh\n// Swoole\nphp -r \"echo swoole_version() . \\PHP_EOL;\"\n\n# 5.1.1\n\n// OpenSwoole\nphp -r \"echo OpenSwoole\\Util::getVersion() . \\PHP_EOL;\"\n\n# 22.0.0\n```\n\n#### Installation\n\n##### Swoole\nOfficial GitHub repository [swoole/swoole-src](https://github.com/swoole/swoole-src#%EF%B8%8F-installation) contains comprehensive installation guide. The recommended approach is to install it [from source](https://github.com/swoole/swoole-src#2-install-from-source-recommended).\n\n##### OpenSwoole\nOfficial GitHub repository [openswoole/ext-openswoole](https://github.com/openswoole/ext-openswoole#installation) contains comprehensive installation guide. The recommended approach is to install it [from source](https://github.com/openswoole/ext-openswoole#2-compile-from-source).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymfony-swoole%2Fswoole-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsymfony-swoole%2Fswoole-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymfony-swoole%2Fswoole-bundle/lists"}