Документы Symfony2 говорят, что я должен использовать псевдоним 'ByBundle:myEntity'
для пути объекта:
$em->getRepository('ByBundle:myEntity');
Но этот строковый литерал бесполезен — нет рефакторинга, нет быстрого и автоматического переименования класса сущностей в IDE.
я использую magic method ::class
$em->getRepository(\ByBundle\Entity\myEntity::class);
Вопрос: правильно ли я это делаю?
Фактически, основная команда Symfony2 использует метод :: class, например, для добавления типов полей формы, например так: $builder->add('name',TextType::class,array(...))
начиная с Symfony v2.8, я думаю, нет ничего плохого в том, как вы это делаете.
ОБНОВИТЬ:
Это позволяет вашей IDE генерировать исключение, если изменится пространство имен связанного класса сущностей, и вы сможете распознать это во время процесса разработки. Это определенно способ «лучше быть безопасным, чем сожалеть», как сопоставить сущность, вместо того, чтобы иметь полное квалифицированное пространство имен или даже псевдоним в виде строки.
Да. Использование ссылки на класс всегда лучше, чем ссылка на строку.
Использование строки обычно означает, что существует алгоритм, который преобразует строку в класс.
IDE дружественных также желательно.