sebk / swoole-bundle
Swoole Symfony Bundle
Requires
- php: ^7.4|^8.0
- ext-json: *
- ext-openswoole: ^4.7.1
- beberlei/assert: ^3.0
- symfony/config: ^4.4.0|^5.0|^6.0
- symfony/console: ^4.4.0|^5.0|^6.0
- symfony/dependency-injection: ^4.4.0|^5.0|^6.0
- symfony/http-foundation: ^4.4.0|^5.0|^6.0
- symfony/http-kernel: ^4.4.0|^5.0|^6.0
- symfony/process: ^4.4.0|^5.0|^6.0
Requires (Dev)
- doctrine/annotations: ^1.6
- doctrine/orm: ^2.6.3
- friendsofphp/php-cs-fixer: ^2.19.0
- jangregor/phpstan-prophecy: ^0.8.0
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.0.2
- phpstan/phpstan: ^0.12.28
- phpstan/phpstan-beberlei-assert: ^0.12.2
- phpstan/phpstan-doctrine: ^0.12.9
- phpstan/phpstan-phpunit: ^0.12.6
- phpunit/php-code-coverage: ^9.1.0
- phpunit/phpcov: ^8.1.0
- phpunit/phpunit: ^9.1.3
- swoole/ide-helper: ^4.5.10
- symfony/debug-pack: ^1.0
- symfony/error-handler: ^4.4.0|^5.0|^6.0
- symfony/framework-bundle: ^4.4.0|^5.0|^6.0
- symfony/messenger: ^4.4.0|^5.0|^6.0
- symfony/monolog-bridge: ^4.4.0|^5.0|^6.0
- symfony/monolog-bundle: ^3.3
- symfony/profiler-pack: ^1.0
- symfony/twig-bundle: ^4.4.0|^5.0|^6.0
- symfony/var-dumper: ^4.4.0|^5.0|^6.0
- symfony/yaml: ^4.4.0|^5.0|^6.0
- upscale/swoole-blackfire: ^3.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
- 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 auto-updated.
Last update: 2024-09-21 17:31:37 UTC
README
使用Swoole与Symfony集成,以加速您的应用程序。
构建矩阵
目录
快速入门指南
-
确保您已安装适当的Swoole PHP扩展并满足其他要求。
-
(可选) 创建一个新的symfony项目
composer create-project symfony/skeleton project cd ./project -
在您的Symfony应用程序中安装bundle
composer require k911/swoole-bundle
-
编辑
config/bundles.phpreturn [ // ...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 Server Task Transport已集成到此bundle中,以允许轻松执行异步操作。该功能的文档在此。
-
开发环境的Hot Module Reload (HMR) ALPHA
由于Swoole HTTP服务器在事件循环中运行并且不会在请求之间刷新内存,为了保持DX与普通服务器相等,此bundle使用代码替换技术,使用
inotifyPHP扩展允许持续开发。默认启用(当找到扩展时)且无需额外配置。您可以在bundle配置中将其关闭。备注:此功能目前仅在Linux主机上工作。它可能不会与Docker一起工作,并且可能仅与以下配置一起工作:
swoole.http_server.running_mode: process(默认)。
要求
当前版本
- PHP版本
>= 7.4 - Swoole PHP扩展
>= 4.5.10 - Symfony
>= 4.4.0
未来版本
- PHP版本
>= 8.0 - Swoole PHP扩展
>= 4.6 - Symfony
>= 5.0
启用特定功能所需的其他要求
- Inotify PHP扩展
^2.0.0以使用Hot Module Reload (HMR)- 当使用PHP 8时,需要inotify版本
^3.0.0
- 当使用PHP 8时,需要inotify版本
Swoole
此bundle需要Swoole PHP扩展版本4.5.10或更高版本。仅对最新版本提供活动错误修复。
版本检查
要检查您的安装版本,您可以运行以下命令
php -r "echo swoole_version() . \PHP_EOL;" # 4.4.7
安装
官方GitHub仓库swoole/swoole-src包含综合安装指南。建议的方法是从源代码安装这里。