swoole-bundle/swoole-bundle

Open/Swoole Symfony Bundle

v0.22.1 2024-09-11 10:46 UTC

README

Maintainability Test Coverage Open Source Love MIT Licence

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

构建矩阵

目录

快速入门指南

  1. 确保您已正确安装了 Open Swoole PHP 扩展,并通过其他 要求

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

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

    composer require swoole-bundle/swoole-bundle

    如果使用 OpenSwoole,还需要安装核心包

    composer require openswoole/core
  4. 编辑 config/bundles.php

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

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

  7. 您现在可以根据需要配置捆绑包

功能

  • 内置 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

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包含全面的安装指南。推荐的方法是从源码编译安装。