pond5 / async-request-bundle
此扩展允许向Symfony Messenger传输发送请求,以便由消费者稍后处理
1.3
2022-05-17 15:21 UTC
Requires
- php: >=7.4
- psr/log: ^1.1|^2.0|^3.0
- symfony/config: ^5.2|^6.0
- symfony/dependency-injection: ^5.2|^6.0
- symfony/event-dispatcher: ^5.2|^6.0
- symfony/http-foundation: ^5.2|^6.0
- symfony/http-kernel: ^5.2|^6.0
- symfony/messenger: ^5.2|^6.0
Requires (Dev)
- phpspec/prophecy-phpunit: ^2.0
- phpstan/phpstan: ^0.12.85
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
README
此扩展允许向Symfony Messenger传输发送请求,以便由消费者稍后处理。
安装
请确保全局已安装Composer,如Composer文档的安装章节中所述。
使用Symfony Flex的应用程序
打开命令行,进入项目目录并执行
composer require pond5/async-request-bundle
不使用Symfony Flex的应用程序
- 添加配置文件
# config/packages/pond5_async_request.yaml pond5_async_request: #header: X-Request-Async # user defined header name to indicate asynchronous request - X-Request-Async used by default #methods: [DELETE, PATCH, POST, PUT] # HTTP methods that should support async requests transport: async-request # messenger transport name, ignored if messenger routing for Pond5\AsyncRequestBundle\Message\AsyncRequestNotification is configured manually # can be omitted when using transport configured in another file (e.g. messenger.yaml) framework: messenger: transports: async-request: '%env(MESSENGER_TRANSPORT_DSN)%'
- 下载扩展
打开命令行,进入项目目录并执行以下命令以下载此扩展的最新稳定版本
composer require pond5/async-request-bundle
- 启用扩展
然后,通过将其添加到项目config/bundles.php
文件中注册的扩展列表中来启用扩展
// config/bundles.php return [ // ... Pond5\AsyncRequestBundle\Pond5AsyncRequestBundle::class => ['all' => true], ];
使用方法
- 在
DELETE, PATCH, POST, PUT
请求中添加X-Request-Async
头,例如
curl -i -X POST http://example.org/endpoint -H "X-Request-Async: 1"
Symfony应该以202
状态码和空响应体响应
HTTP/1.1 202 Accepted
Content-Length: 0
- 处理请求/消费消息
bin/console messenger:consume
测试
- 安装开发依赖
composer install
- 运行单元测试
bin/phpunit