k911/swoole-bundle

此包已被废弃且不再维护。未建议替代包。

Swoole Symfony Bundle

资助包维护!
k911

v0.10.0 2021-05-05 11:48 UTC

README

Maintainability Test Coverage Open Source Love MIT Licence

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

构建矩阵

CI 任务 分支 master 分支 develop
CircleCI CircleCI CircleCI
CodeCov codecov codecov
Travis Build Status Build Status

目录

快速入门指南

  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 服务器任务传输已集成到此包中,以允许轻松执行异步操作。有关此功能的文档可在 此处 查看。

  • 开发环境的模块热重载(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 包含全面的安装指南。推荐的方法是从源代码安装。