sebk/swoole-bundle

Swoole Symfony Bundle

资助包维护!
k911

dev-develop / 0.8.x-dev 2022-08-30 11:51 UTC

This package is auto-updated.

Last update: 2024-09-21 17:31:37 UTC


README

Maintainability Test Coverage Open Source Love MIT Licence

使用Swoole与Symfony集成,以加速您的应用程序。

构建矩阵

目录

快速入门指南

  1. 确保您已安装适当的Swoole PHP扩展并满足其他要求

  2. (可选) 创建一个新的symfony项目

    composer create-project symfony/skeleton project
    
    cd ./project
  3. 在您的Symfony应用程序中安装bundle

    composer require k911/swoole-bundle
  4. 编辑config/bundles.php

    return [
        // ...other bundles
        K911\Swoole\Bridge\Symfony\Bundle\SwooleBundle::class => ['all' => true],
    ];
  5. 运行Swoole HTTP服务器

    bin/console swoole:server:run
  6. 输入https://:9501

  7. 现在您可以根据需要配置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使用代码替换技术,使用inotify PHP扩展允许持续开发。默认启用(当找到扩展时)且无需额外配置。您可以在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

Swoole

此bundle需要Swoole PHP扩展版本4.5.10或更高版本。仅对最新版本提供活动错误修复。

版本检查

要检查您的安装版本,您可以运行以下命令

php -r "echo swoole_version() . \PHP_EOL;"

# 4.4.7

安装

官方GitHub仓库swoole/swoole-src包含综合安装指南。建议的方法是从源代码安装这里