azjezz/input-hydrator-bundle
Composer 安装命令:
composer require azjezz/input-hydrator-bundle
包简介
Hydrates input DTOs from request input.
README 文档
README
About
InputHydratorBundle provides a Symfony Bundle for azjezz/input-hydrator package.
Installation
To install the bundle, run the command below and you will get the latest version:
$ composer require azjezz/input-hydrator-bundle
Configuration
Configuring the input hydrator bundle is pretty straight forward,
all you need to do is add the bundle to your config/bundles.php:
Note: this will be done for you automatically if you have
symfony/flexinstalled.
// config/bundles.php <?php return [ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], ... AzJezz\Input\HydratorBundle\InputHydratorBundle::class => ['all' => true], ];
That's it.
Usage
To use the input hydrator, you first need to create your input DTO class.
for example:
// src/Input/Search.php <?php declare(strict_types=1); namespace App\Input; use AzJezz\Input\InputInterface; final class Search implements InputInterface { public string $query; }
later you can request the DTO as a parameter in your controller:
// src/Controller/SearchController.php <?php declare(strict_types=1); namespace App\Controller; use App\Input\Search; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; final class SearchController { /** * @Route("/search", methods={"GET"}) */ public function index(Search $search): Response { return new Response('You were looking for "'.$search->query.'"?'); } }
Using Symfony's argument resolver, the bundle is able to hydrate the Search DTO and pass it on to your controller.
In case the request doesn't specify the query field, or query contains another type ( e.g. array ),
the argument resolver will throw BadRequestHttpException which will result in a 400 Bad Request response.
License
The MIT License (MIT). Please see LICENSE for more information.
统计信息
- 总下载量: 342
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-10-31