halloverden/request-mapping-bundle

Symfony 扩展包,用于将请求数据映射到对象

1.1.0 2024-04-11 16:48 UTC

This package is auto-updated.

Last update: 2024-09-11 17:45:33 UTC


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],
];

用法

  1. 创建一个实现 RequestDataHandlerInterface(或扩展 AbstractRequestDataHandler)的处理程序
  2. 创建一个表示请求负载、查询或头部的类
  3. 在控制器中参数上使用 MapRequestPayloadMapRequestQueryMapRequestHeaders 属性。
    <?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();
      }
    }