bencagri/openswoole-bundle

Swoole Symfony Bundle

v0.10.0 2021-12-23 10:07 UTC

This package is auto-updated.

Last update: 2024-09-23 16:16:38 UTC


README

Maintainability Test Coverage Open Source Love MIT Licence

使用 Swoole 来加速您的应用程序的 Symfony 集成。

此存储库是 K911 Swoole Bundle 的分支。

构建矩阵

目录

快速入门指南

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

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

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

    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. 您现在可以根据需要配置包

功能

  • 内置 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(默认)兼容。

要求

当前版本

  • 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 用于使用热模块重载 (HMR)
    • 当使用 PHP 8 时,需要 inotify 版本 ^3.0.0

Swoole

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

版本检查

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

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

# 4.4.7

安装

官方GitHub仓库 swoole/swoole-src 包含详细的安装指南。推荐的方法是从源代码安装