alexlisenkov / uuid-argument-resolver-bundle
ramsey/uuid argument resolver bundle for Symfony
1.0.4
2020-12-09 09:33 UTC
Requires
- php: ^7.3 || ^8.0
- nyholm/psr7: ^1.3
- ramsey/uuid: ^4.1
- symfony/config: ^5.2
- symfony/dependency-injection: ^5.2
- symfony/http-kernel: ^5.2
- symfony/psr-http-message-bridge: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
ramsey/uuid argument resolver bundle for Symfony
安装
composer require alexlisenkov/uuid-argument-resolver-bundle
使用方法
namespace App\Controllers; use Psr\Http\Message\ResponseInterface; use Ramsey\Uuid\UuidInterface; class ResourceController /** * @Route("/{uuid}", name="show_resource", methods="GET") */ public function show(UuidInterface $resourceUuid, ResourceRepository $resourceRepository): ResponseInterface { $resource = $resourceRepository->findOneByUuid($resourceUuid); if ($resource === null) { return new ResourceNotFoundResponse(); } return new ResourceResponse($resource); }
处理无效的UUID
默认情况下,它将返回包含 Invalid UUID
的 400 Bad Request
响应。但你可以通过创建一个服务来配置这个。
自定义响应
创建一个工厂,用于创建一个 Psr\Http\Message\ResponseInterface
。
namespace App\Factory; use Psr\Http\Message\ResponseInterface; use Symfony\Component\HttpFoundation\Response; class InvalidUuidResponseFactory { public static function create(): ResponseInterface { return new Response(400, [], 'Invalid UUID'); } }
使用你的工厂覆盖 alexlisenkov.uuid_argument_resolver_bundle.uuid_invalid_response
服务。
alexlisenkov.uuid_argument_resolver_bundle.uuid_invalid_response: class: '@Psr\Http\Message\ResponseInterface' factory: [ 'App\Factory\InvalidUuidResponseFactory', create ]
现在无效的UUID将返回你的响应。
测试
composer test
贡献
欢迎贡献。