Из документа dto платформы api. Скажите, чтобы я создал выходной класс и преобразователь данных, когда я использую выходной атрибут для операции, он не может ответить на экземпляр выходного класса, что в этом плохого?
трансформатор выглядит так:
final class RegistrationOutputTransformer implements DataTransformerInterface
{
...
/**
* {@inheritdoc}
*/
public function transform($data, string $to, array $context = [])
{
$content = $this->authenticationSuccessHandler->handleAuthenticationSuccess($data)->getContent();
$output = $this->serializer->deserialize($content,AuthenticatedOutput::class,'json');
// dump($output instanceof AuthenticatedOutput); // this is true
return $output;
}
/**
* {@inheritdoc}
*/
public function supportsTransformation($data, string $to, array $context = []): bool
{
return AuthenticatedOutput::class === $to && $data instanceof User;
}
}
и сущность
* "registration_by_mail"={
* "method"="POST",
* "path"="/users/register/mail",
* "input"=RegistrationMailUserInput::class,
* "output"=AuthenticatedOutput::class
* },
и класс вывода
final class AuthenticatedOutput
{
/**
* @var int
*/
private $user_id;
/**
* @var string
*/
private $token_type;
/**
* @var int
*/
private $expires_in;
/**
* @var string
*/
private $refresh_token;
/**
* @return int
*/
public function getUserId(): int
{
return $this->user_id;
}
/**
* @param int $user_id
*/
public function setUserId(int $user_id): void
{
$this->user_id = $user_id;
}
...
результат вывода
{
"@context": {
"@vocab": "http:\/\/phpna.local\/api\/docs.jsonld#",
"hydra": "http:\/\/www.w3.org\/ns\/hydra\/core#",
"userId": "AuthenticatedOutput\/userId",
"tokenType": "AuthenticatedOutput\/tokenType",
"expiresIn": "AuthenticatedOutput\/expiresIn",
"refreshToken": "AuthenticatedOutput\/refreshToken"
},
"@type": "User",
"@id": "\/api\/users\/35"
}
Я просто хочу, чтобы он вывел экземпляр выходного класса, в чем ошибка моего кода?