2017-12-21 28 views
0

php7 이후 우리는 이미 함수의 리턴 타입을 선언 할 수 있다는 것을 알고 있습니다. 그 함수가 다른 것을 반환하면 예외가 발생합니다.Symfony - Doctrine 엔티티의 리턴 타입

이제 Symfony 프로젝트의 함수가 Doctrine 엔티티를 반환 할 때이 새로운 기능을 사용하고 싶습니다. 그래서 나는이 같은 함수를 선언하려고 :

public function getEntity(array $conditions, string $entityClass): ?object 
{ 
    // some logic... 
    return $queryBuilder->setMaxResults(1)->getQuery()->getOneOrNullResult(); 
} 

당신이 null 또는 object 변수를 반환해야 볼 수 있듯이.

Type error: Return value of HelperBundle\MyHelper::getEntity() must be an instance of HelperBundle\object or null, instance of AppBundle\Entity\MyEntity returned

실제로이 메시지가 무엇을 의미하는지 확실하지 않다 : 그러나, 나는 예외를 얻었 기 때문에 예상대로 object 작동하지 않는 것 같다 목적은 HelperBundle 또는 무엇에있는 클래스에서 파생 반환해야합니까?

그러나 일반적으로 사용자 지정 기본 클래스 나 인터페이스를 사용하지 않고 일반 Doctrine 엔터티에 대한 반환 형식을 선언하는 방법이 있습니까?

+0

정확히 무엇을위한 Downvote? – DrKey

답변

3

I했습니다 지금이에 대한 기사를 읽고는 그러나 PHP 7.2에서 객체

당신이 할 수있는 반환 형식 힌트 가지고 지원되지 않는 : http://php.net/manual/en/migration72.new-features.php

+0

"또는 null"부분에서 약간 오인됩니다. Nullable 타입은 PHP 7.1에서 소개됩니다 (http://php.net/manual/ru/migration71.new-features.php 참조). – svgrafov

+0

@svgrafov, 고마워. 내가 바꿨어. –

1

당신에게 첫 번째 질문을 해결하기를, 난 그냥 당신이 HelperBundle 네임 스페이스에 object 클래스를 선언하는 것처럼이 선언

public function getEntity(array $conditions, string $entityClass): ?object 

는 PHP < 7.2에 의해 이해되고 말 것입니다.

+0

PHP에서 이미 사용할 수 있다고 생각했기 때문에 오류가 발생하지 않았기 때문에 PhpStorm에 의존했습니다 ... my fault : \ – DrKey