2016-06-06 2 views
0

С Symfony Я беру привычку использовать имя класса распознаватель ::class (с php5.5):Полное имя мы должны использовать класс ::

use AppBundle\Entity\Product; 

// ... 

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

вместо строки FQN:

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

Я делаю это для удобства чтения и потому, что он удобен для интроспекции в некоторых интеллектуальных IDE.

Однако я вижу не столько примеры этой практики в официальных документах. Поэтому мне интересно, связано ли это с проблемой совместимости (< php5.5), или потому, что было бы неплохо систематически импортировать все классы, которые нам нужно ссылаться.

Мой вопрос: хорошо ли использовать ::class везде, где нам нужно обратиться к FQN?

+0

как вы сказали 'из-за проблемы совместимости ( Matteo

+0

Спасибо за ваш комментарий. Я не понимаю, почему мой вопрос заслужил бы близость и -1, хотя –

+0

«Хорошие практики» очень часто основаны на мнениях, но, помимо комментария Маттео о совместимости (я согласен с ним), я думаю, вы должны спросить себя, почему не использовать его. Я вижу только преимущества использования распознавателя имени класса, например, если вы изменили пространство имен класса, которое вы не вынуждаете изменять его везде в коде (я использую ':: class' всюду, а не также в Entities). –

ответ

0

Ответ, кажется:

Помимо проблемы совместимости с PHP 5.5 < нет ничего, что помешало бы один использовать ::class имя распознаватель везде нам нужно.

Смежные вопросы