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을 참조해야 할 때마다 사용하는 것이 좋습니다.
당신이 말한대로 '호환성 문제 ()로 인한 것입니다. –
Matteo
주셔서 감사합니다. 내 질문이 가까이에 -1이라는 이유는 모르겠다. –
"우수 사례"는 종종 의견을 바탕으로하지만, 호환성에 대한 Matteo의 의견 (필자도 동의 함)을 제외하고는 왜 그것을 사용하지 마십시오. 클래스의 네임 스페이스를 변경하는 경우 클래스의 네임 스페이스를 변경하는 경우 (예 : 모든 곳에서':: class'를 사용하고 엔터티에서는 사용하지 않음) 코드의 어디에서나 변경할 수있는 장점이 있습니다. –