halloverden / request-mapping-bundle
Symfony 扩展包,用于将请求数据映射到对象
1.1.0
2024-04-11 16:48 UTC
Requires
- php: >=8.2
- halloverden/symfony-http-exceptions: ^2.1
- jms/serializer-bundle: ^5.4
- symfony/framework-bundle: ^6.4|^7.0
- symfony/validator: ^6.4|^7.0
Requires (Dev)
- phpunit/phpunit: ^10.5
README
Symfony 扩展包,用于将请求数据映射到对象
安装
确保全局已安装 Composer,如 Composer 文档中的安装章节所述。
使用 Symfony Flex 的应用程序
打开命令行控制台,进入您的项目目录,然后执行
$ composer require halloverden/request-mapping-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载扩展包
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此扩展包的最新稳定版本
$ composer require halloverden/request-mapping-bundle
步骤 2:启用扩展包
然后,通过将其添加到项目 config/bundles.php
文件中注册的扩展包列表中来启用扩展包
// config/bundles.php return [ // ... HalloVerden\RequestMappingBundle\HalloVerdenRequestMappingBundle::class => ['all' => true], ];
用法
- 创建一个实现
RequestDataHandlerInterface
(或扩展AbstractRequestDataHandler
)的处理程序 - 创建一个表示请求负载、查询或头部的类
- 在控制器中参数上使用
MapRequestPayload
、MapRequestQuery
或MapRequestHeaders
属性。<?php namespace App\Controller; use App\Entity\Requests\TestRequest; use App\Entity\Response\TestResponse; use HalloVerden\RequestMappingBundle\Attribute\MapRequestPayload; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Annotation\Route; #[Route(path: '/test2', name: 'testpost', methods: [Request::METHOD_POST])] class Test2Controller extends AbstractResponseEntityController { public function __invoke( #[MapRequestPayload(handler: 'your_handler')] TestRequestPayload $testRequestPayload ): JsonResponse { // Do something with $testRequestPayload return new JsonResponse(); } }