PHP 7 и групповое использование Doctrine

Я хочу использовать некоторые функции PHP 7, но у меня с этим проблемы.

У меня есть Symfony-Project, использующий Doctrine для сопоставления некоторых сущностей. Новым в PHP 7 являются операторы GROUP USE-Statements, которые я хотел попробовать. Но, похоже, я делаю что-то не так, поскольку Symfony/Doctrine не может разрешить аннотации в Entity-Object.

Уведомление об использовании:

use Doctrine\ORM\Mapping\{Entity, Id, Table, Column, GeneratedValue, JoinColumn, OneToOne, ManyToMany, JoinTable};

Объект

/**
 * @Entity
 * @Table(name="expansion")
 */
class Expansion {
..
}

Исключение

[Semantical Error] The annotation "@Entity" in class AppBundle\Entity\Expansion was never imported. Did you maybe forget to add a "use" statement for this annotation?

Если я использую одиночные USE-операторы, импорт работает отлично...

Что я делаю не так? Версии правильные. Также PHPStorm говорит, что «Псевдоним XY» никогда не используется.

Спасибо за поддержку!


person Remo    schedule 13.01.2016    source источник


Ответы (1)


Я не уверен на 100%, но могу поспорить, что компонент Doctrine\Common\Annotations еще не может обрабатывать сгруппированные операторы use PHP7. Мне не удалось найти письменных заявлений, подтверждающих это предположение, но Doctrine\Common\Annotations\TokenParser::parseUseStatement, похоже, вообще не обрабатывает сгруппированные пространства имен.

person Stefan Gehrig    schedule 13.01.2016
comment
Спасибо за Ваш ответ. Похоже на это... Поскольку я новичок в Doctrine: что вы порекомендуете сделать, чтобы решить эту проблему? Могу ли я открыть ошибку на странице доктрины? - person Remo; 14.01.2016
comment
@iChaos Ответ Стефана правильный. Я добавил запрос на вытягивание, который должен решить эту проблему, но он не будет включен сразу: github. com/doctrine/annotations/pull/69 . На данный момент, если вы работаете над этим проектом самостоятельно, вы можете просто внести в свой vendor/doctrine/annoations/lib/Doctrine/Common/Annotations/TokenParser.php следующие изменения: github.com/poldridge/annotations/commit/, и он должен начать работать. - person Paul; 14.01.2016
comment
@Paulpro: Большое спасибо: D - person Remo; 14.01.2016