swoole-bundle / swoole-bundle
Open/Swoole Symfony Bundle
Requires
- php: ^8.1
- ext-json: *
- beberlei/assert: ^3.3
- laminas/laminas-code: ^4.7||^4.8
- monolog/monolog: ^2.3.3|^3.0
- symfony/cache: ^5.4.30|^6.4|^7.0
- symfony/config: ^5.4.26|^6.4|^7.0
- symfony/console: ^5.4.28|^6.4|^7.0
- symfony/dependency-injection: ^5.4.29|^6.4|^7.0
- symfony/filesystem: ^5.4.25|^6.4|^7.0
- symfony/http-foundation: ^5.4.30|^6.4|^7.0
- symfony/http-kernel: ^5.4.30|^6.4|^7.0
- symfony/process: ^5.4.28|^6.4|^7.0
- symfony/proxy-manager-bridge: ^5.4.21|^6.4|^7.0
- upscale/ext-openswoole: ^v22.1.2
- upscale/ext-swoole: ^5.1.0
Requires (Dev)
- ext-ffi: ^8.1
- blackfire/php-sdk: ^1.30
- doctrine/dbal: ^3.4
- doctrine/doctrine-bundle: ^2.7
- doctrine/doctrine-migrations-bundle: ^3.2.4
- doctrine/migrations: ^3.5
- doctrine/orm: ^2.13
- doctrine/persistence: ^3.2
- friendsofphp/php-cs-fixer: ^3.7
- jangregor/phpstan-prophecy: ^1.0
- openswoole/core: ^22.1.5
- openswoole/ide-helper: ^22.1.5
- phpro/grumphp: ^2.4
- phpspec/prophecy: ^1.17
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.0.2
- phpstan/phpstan: ^1.10
- phpstan/phpstan-beberlei-assert: ^1.0
- phpstan/phpstan-doctrine: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/php-code-coverage: ^10.1
- phpunit/phpcov: ^9.0
- phpunit/phpunit: ^10.5
- pixelfederation/doctrine-resettable-em-bundle: ^7.0|^8.0
- ramsey/uuid: ^4.7
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.8
- swoole-bundle/z-engine: ^8.1.1|^8.2.1|^8.3.0
- swoole/ide-helper: ^5.1.0
- symfony/debug-bundle: ^5.4.26|^6.4|^7.0
- symfony/doctrine-messenger: ^5.4.30|^6.4|^7.0
- symfony/error-handler: ^5.4.29|^6.4|^7.0
- symfony/flex: ^2.4
- symfony/framework-bundle: ^5.4.30|^6.4|^7.0
- symfony/messenger: ^5.4.30|^6.4|^7.0
- symfony/monolog-bridge: ^5.4.22|^6.4|^7.0
- symfony/monolog-bundle: ^3.10
- symfony/stopwatch: ^5.4.21|^6.4|^7.0
- symfony/twig-bridge: ^5.4.29|^6.4|^7.0
- symfony/twig-bundle: ^5.4.27|^6.4|^7.0
- symfony/var-dumper: ^5.4.29|^6.4|^7.0
- symfony/var-exporter: ^5.4.26|^6.4|^7.0
- symfony/web-profiler-bundle: ^5.4.30|^6.4|^7.0
- symfony/yaml: ^5.4.30|^6.4|^7.0
- tideways/ext-tideways-stubs: ^5.5
- twig/twig: ^3.4.3
- upscale/swoole-blackfire: ^4.0
- webmozart/assert: ^1.11.0
Suggests
- ext-inotify: To enable HMR
- doctrine/orm: For using Entity Manager Handler
- pixelfederation/doctrine-resettable-em-bundle: To be able to recover Doctrine Entity Managers from errors
- swoole-bundle/z-engine: To be able to use coroutines.
- symfony/error-handler: To use Symfony Error Handler
- symfony/messenger: For using Symfony Messenger Swoole Task Transport.
- upscale/swoole-blackfire: To enable Blackfire profiling
- dev-develop
- v0.22.1
- v0.22.0
- v0.21.2
- v0.21.1
- v0.21.0
- v0.20.0
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.1
- v0.13.0
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.0
- v0.9.0
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.9
- v0.7.8
- v0.7.7
- v0.7.6
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.0
- dev-chore/release-v0.22.1-develop
- dev-chore/release-v0.22.1-master
- dev-master
- dev-chore/release-v0.22.0-develop
- dev-dependabot/composer/develop/symfony/doctrine-messenger-5.4.40
- dev-chore/release-v0.21.2-develop
- dev-revert-111-fix-access-log
- dev-demo
- dev-releaser_gpg_volume
- dev-dependabot/composer/develop/phpstan/phpstan-1.10.13
- dev-ci_new_docker_client
- dev-less_locks
- dev-coroutines
- dev-newrelic
- dev-241_profiler_logs
- dev-channelled_logging
- dev-refactor/coroutines-usage
This package is auto-updated.
Last update: 2024-09-18 09:24:20 UTC
README
Symfony 与 Open Swoole 集成,加速您的应用程序。
构建矩阵
目录
快速入门指南
-
确保您已正确安装了 Open Swoole PHP 扩展,并通过其他 要求。
-
(可选) 创建一个新的 symfony 项目
composer create-project symfony/skeleton project cd ./project
-
在您的 symfony 应用程序中安装捆绑包
composer require swoole-bundle/swoole-bundle
如果使用 OpenSwoole,还需要安装核心包
composer require openswoole/core
-
编辑
config/bundles.php
return [ // ...other bundles SwooleBundle\SwooleBundle\Bridge\Symfony\Bundle\SwooleBundle::class => ['all' => true], ];
-
运行 Swoole HTTP 服务器
bin/console swoole:server:run
-
您现在可以根据需要配置捆绑包
功能
-
内置 API 服务器
Swoole Bundle API 服务器允许实时管理 Swoole HTTP 服务器。
- 重新加载工作进程
- 关闭服务器
- 访问指标和设置
-
改进的静态文件服务
Swoole HTTP 服务器提供了一个默认的静态文件处理器,但它不支持许多
Content-Types
。为了解决这个问题,有一个可配置的高级静态文件服务器。在开发环境中,默认启用静态文件服务。静态文件目录默认为%kernel.project_dir%/public
。要配置自定义 MIME 类型,请查看 配置参考(键swoole.http_server.static.mime_types
)。 -
Symfony Messenger 集成
自版本
0.6
起可用Swoole Server Task Transport 已集成到本捆绑包中,允许轻松执行异步操作。该功能的文档可在此处查看:此处。
-
开发中的热模块重载 (HMR) ALPHA
由于 Swoole HTTP 服务器在事件循环中运行且在请求之间不刷新内存,为了保持 DX 与普通服务器相等,此捆绑包使用代码替换技术,使用
inotify
PHP 扩展以允许连续开发。默认启用(当找到扩展时)且无需任何额外配置。您可以在捆绑包配置中将其关闭。备注:此功能目前仅在 Linux 主机机器上工作。它可能与 Docker 不兼容,并且可能仅与以下配置一起工作:
swoole.http_server.running_mode: process
(默认)。 -
访问日志,默认禁用,日志可配置,与 apache mod log 的方式相同。有关此功能的文档可在此处查看:此处。
要求
当前版本
- PHP 版本
>= 8.1 && <= 8.3
- Open Swoole PHP 扩展
^v22.1.2
- Swoole PHP 扩展
^5.1.1
- Symfony
^5.4.22 || ^6.4
未来版本
- Symfony
^7.0
启用特定功能所需的附加要求
- Inotify PHP 扩展
^2.0.0
用于使用热模块重载 (HMR)- 当使用 PHP 8 时,需要 inotify 版本
^3.0.0
- 当使用 PHP 8 时,需要 inotify 版本
Swoole
此捆绑包需要以下扩展之一
- Swoole PHP 扩展版本
5.1.1
或更高版本。只有最新版本提供活跃的错误修复。 - Open Swoole PHP 扩展版本
22.0.0
或更高版本。只有最新版本提供活跃的错误修复。
版本检查
要检查您的安装版本,您可以运行以下命令
// Swoole php -r "echo swoole_version() . \PHP_EOL;" # 5.1.1 // OpenSwoole php -r "echo OpenSwoole\Util::getVersion() . \PHP_EOL;" # 22.0.0
安装
Swoole
官方GitHub仓库swoole/swoole-src包含全面的安装指南。推荐的方法是从源码安装。
OpenSwoole
官方GitHub仓库openswoole/ext-openswoole包含全面的安装指南。推荐的方法是从源码编译安装。