kogeva / swoole-bundle
Swoole Symfony Bundle
Requires
- php: ^8.0
- ext-json: *
- ext-openswoole: ^4.10.0||^22.0
- ext-pcntl: *
- beberlei/assert: ^3.3
- laminas/laminas-code: ^4.7||^4.8||^4.11
- openswoole/ide-helper: ~22.0.1
- symfony/cache: ^5.4|^6.0
- symfony/config: ^5.4|^6.0
- symfony/console: ^5.4|^6.0
- symfony/dependency-injection: ^5.4|^6.0
- symfony/filesystem: ^5.4|^6.0
- symfony/http-foundation: ^5.4|^6.0
- symfony/http-kernel: ^5.4|^6.0
- symfony/process: ^5.4|^6.0
- symfony/proxy-manager-bridge: ^5.4|^6.0
Requires (Dev)
- ext-ffi: ^8.0
- blackfire/php-sdk: ^1.30
- doctrine/annotations: ^1.13||^2
- doctrine/doctrine-bundle: ^2.7
- doctrine/doctrine-migrations-bundle: ^3.2
- doctrine/orm: ^2.11
- friendsofphp/php-cs-fixer: ^3.14
- jangregor/phpstan-prophecy: ^1.0
- phpspec/prophecy: ^1.17
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.0.2
- phpstan/phpstan: ^1.4
- phpstan/phpstan-beberlei-assert: ^1.0
- phpstan/phpstan-doctrine: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/php-code-coverage: ^9.1.0
- phpunit/phpcov: ^8.0
- phpunit/phpunit: ^9.5
- pixelfederation/doctrine-resettable-em-bundle: ^7.0
- pixelfederation/z-engine: ~8.0|~8.1|~8.2
- ramsey/uuid: ^4.1
- symfony/debug-pack: ^1.0
- symfony/doctrine-messenger: ^5.4|^6.0
- symfony/error-handler: ^5.4|^6.0
- symfony/framework-bundle: ^5.4|^6.0
- symfony/messenger: ^5.4|^6.0
- symfony/monolog-bridge: ^5.4|^6.0
- symfony/monolog-bundle: ^3.3
- symfony/profiler-pack: ^1.0
- symfony/twig-bundle: ^5.4|^6.0
- symfony/var-dumper: ^5.4|^6.0
- symfony/yaml: ^5.4|^6.0
- tideways/ext-tideways-stubs: ^5.5
- upscale/swoole-blackfire: ^4.0
Suggests
- ext-inotify: To enable HMR
- doctrine/orm: For using Entity Manager Handler
- lisachenko/z-engine: To be able to use coroutines.
- pixelfederation/doctrine-resettable-em-bundle: To be able to recover Doctrine Entity Managers from errors
- symfony/error-handler: To use Symfony Error Handler
- symfony/messenger: For using Symfony Messenger Swoole Task Transport.
- upscale/swoole-blackfire: To enable Blackfire profiling
This package is not auto-updated.
Last update: 2024-09-19 17:03:21 UTC
README
使用 Open Swoole 与 Symfony 集成以加速您的应用程序。
构建矩阵
目录
快速入门指南
-
确保您已安装适当的 Open Swoole PHP 扩展,并满足其他 要求。
-
(可选) 创建一个新的 symfony 项目
composer create-project symfony/skeleton project cd ./project
-
在您的 symfony 应用程序中安装 bundle
composer require pixelfederation/swoole-bundle
-
编辑
config/bundles.php
return [ // ...other bundles K911\Swoole\Bridge\Symfony\Bundle\SwooleBundle::class => ['all' => true], ];
-
运行 Swoole HTTP 服务器
bin/console swoole:server:run
-
现在您可以按照您的需求配置 bundle
功能
-
内置 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 服务器任务传输已集成到此 bundle 中,以便轻松执行异步操作。此功能的文档可在 此处 查看。
-
开发环境的模块热重载(HMR)ALPHA
由于 Swoole HTTP 服务器在事件循环中运行并且不请求间刷新内存,为了使 DX 与正常服务器相等,此 bundle 使用代码替换技术,使用
inotify
PHP 扩展允许持续开发。默认启用(当找到扩展时)且无需额外配置。您可以在 bundle 配置中将其关闭。备注:此功能目前仅在 Linux 主机上运行。它可能不适用于 Docker,并且可能仅与以下配置一起工作:
swoole.http_server.running_mode: process
(默认)。 -
访问日志,(默认禁用)日志可配置,与 apache mod log 的方式相同。此功能的文档可在 此处 查看。
要求
当前版本
- PHP 版本
>= 8.0
- Open Swoole PHP 扩展
>= 4.12.1
- Symfony
>= 5.4.0
未来版本
- PHP 版本
>= 8.2
- Swoole PHP 扩展
>= v22.0.0
- Symfony
>= 6.1
启用特定功能的附加要求
- Inotify PHP 扩展
^2.0.0
以使用热模块重载(HMR)- 当使用 PHP 8 时,需要 inotify 版本
^3.0.0
- 当使用 PHP 8 时,需要 inotify 版本
Open Swoole
此 bundle 需要 Open Swoole PHP 扩展 版本 4.10.0
或更高。仅对最新版本提供活动错误修复。
版本检查
要检查您已安装的版本,可以运行以下命令
php -r "echo swoole_version() . \PHP_EOL;" # 4.10.0
安装
官方GitHub仓库 openswoole/swoole-src 包含详细的安装指南。推荐的方法是从源码编译安装。