alexlisenkov/uuid-argument-resolver-bundle

ramsey/uuid argument resolver bundle for Symfony

安装: 23

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.4 2020-12-09 09:33 UTC

This package is auto-updated.

Last update: 2024-09-09 18:18:35 UTC


README

ramsey/uuid argument resolver bundle for Symfony

Coverage Status CI Packagist Downloads PHP Versions

安装

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 UUID400 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

贡献

欢迎贡献。