2016-06-06 8 views
0

심포니 나는 (php5.5 이후) 클래스 이름 확인자 ::class을 사용하는 습관을 복용 해요 :정규화 된 이름은 우리가 사용해야 :: 클래스

use AppBundle\Entity\Product; 

// ... 

$resolver->setDefaults(array(
    'data_class' => Product::class 
)); 

을 대신 FQN 문자열의 :

$resolver->setDefaults(array(
    'data_class' => 'AppBundle\Entity\Product' 
)); 

가독성을 위해 그리고 일부 스마트 IDE에서 introscope에 유용하기 때문에 그렇게하고 있습니다.

그러나 공식 문서에서는이 사례에 대한 많은 예제가 없습니다. 그래서 이것이 호환성 문제 (< php5.5) 때문인지 또는 우리가 참조해야하는 모든 클래스를 체계적으로 가져 오는 것이 좋지 않기 때문에 궁금합니다.

제 질문은 ::class을 FQN을 참조해야 할 때마다 사용하는 것이 좋습니다.

+0

당신이 말한대로 '호환성 문제 ()로 인한 것입니다. – Matteo

+0

주셔서 감사합니다. 내 질문이 가까이에 -1이라는 이유는 모르겠다. –

+0

"우수 사례"는 종종 의견을 바탕으로하지만, 호환성에 대한 Matteo의 의견 (필자도 동의 함)을 제외하고는 왜 그것을 사용하지 마십시오. 클래스의 네임 스페이스를 변경하는 경우 클래스의 네임 스페이스를 변경하는 경우 (예 : 모든 곳에서':: class'를 사용하고 엔터티에서는 사용하지 않음) 코드의 어디에서나 변경할 수있는 장점이 있습니다. –

답변

0

대답은 것 같다 : 모든 곳에서 우리가 필요로하는 ::class 이름 해결을 사용하는 일을 방지 할 수 아무것도 PHP < 5.5과의 호환성 문제에서 별도로

.