2016-01-13 1 views
4

Je veux utiliser certaines fonctionnalités de PHP 7 mais je me bats un peu avec. J'ai un projet Symfony utilisant Doctrine pour mapper certaines entités. Nouveau en PHP 7, les GROUP USE-Statemens, que je voulais essayer. Mais il semble que je fasse quelque chose de mal, puisque Symfony/Doctrine ne peut pas résoudre les annotations dans l'Entity-Object.Utilisations de PHP 7 et de Doctrine Group

-utilisation Déclaration:

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

Entité

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

Exception

[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? 

Si j'utilise la seule USE-St atements, l'importation fonctionne parfaitement ...

Qu'est-ce que je fais mal? Les versions sont correctes. PHPStorm dit aussi que 'Alias ​​XY' n'est jamais utilisé.

Nous vous remercions de votre soutien!

Répondre

5

Je ne suis pas sûr à 100% mais je parie que le composant Doctrine\Common\Annotations ne peut pas gérer PHP7 groupé use instructions pour le moment. Je n'ai trouvé aucune déclaration écrite confirmant cette hypothèse, mais Doctrine\Common\Annotations\TokenParser::parseUseStatement ne semble pas du tout gérer les espaces de noms groupés.

+0

Merci pour votre réponse. Il semble que ça ... Depuis, je suis nouveau à Doctrine: Que recommandez-vous de faire pour résoudre ce problème? Peut/Devrais-je ouvrir un bug sur la page Doctrine? – iChaos

+0

La réponse de @iChaos Stefan est correcte. J'ai ajouté une requête d'extraction qui devrait l'aborder, mais elle ne sera pas incluse immédiatement: https://github.com/doctrine/annotations/pull/69. Pour l'instant, si vous travaillez vous-même sur ce projet, vous pouvez juste patcher votre 'vendeur/doctrine/annoations/lib/Doctrine/Common/Annotations/TokenParser.php' avec ces changements: https://github.com/poldridge/ annotations/commit/c5c88bb690736dfc3e4b5229972dabfbb792bab0 et il devrait commencer à fonctionner. – Paulpro

+0

@Paulpro: Merci beaucoup: D – iChaos