5

Ich versuche, ExclusionPolicy zu verwenden, aber ich bekomme immer einen Fehler "Anmerkung ist nicht vorhanden oder konnte nicht automatisch geladen werden".JMSSerializer und FOSRestBundle - Anmerkungen funktionieren nicht. "Existiert nicht"

Hier der genaue Fehler geworfen werden:

[Semantische Fehler] Die Anmerkung "@JMS \ SerializerBundle \ Annotation \ ExclusionPolicy" in Klasse Acme \ DemoBundle \ Entity \ Attribute nicht vorhanden ist, oder konnte nicht automatisch geladen werden.

Mein Code ist wie folgt:

namespace Acme\DemoBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints; 
use JMS\SerializerBundle\Annotation\ExclusionPolicy; 
use JMS\SerializerBundle\Annotation\Expose; 

/** 
* Acme\DemoBundle\Entity\Attributes 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="Acme\DemoBundle\Entity\AttributesRepository") 
* 
* @ExclusionPolicy("all") 
*/ 
class Attributes 
{ 
    ... 
} 

Antwort

10

Ihr Problem durch Verwendung des falschen Namensraum verursacht wird.

Statt:

use JMS\SerializerBundle\Annotation\ExclusionPolicy; 
use JMS\SerializerBundle\Annotation\Expose; 

Es sollte:

use JMS\Serializer\Annotation\ExclusionPolicy; 
use JMS\Serializer\Annotation\Expose; 

Notice "Bundle" ist verschwunden. In Ver 0.11 wurde es in ein eigenes Repository extrahiert.

Das Changelog ist wie folgt:

  • Namespace Änderungen

Die Kernbibliothek hat zu einem dedizierten Repository schmittjoh/serializer extrahiert worden, um es wiederverwendbar in jeder Art zu erleichtern von PHP Projekt, nicht nur in Symfony2-Projekten. Dies führt zu mehreren Namespace-Änderungen in . > JMS \ Serializer

  • JMS \ SerializerBundle - -> JMS \ Serializer
  • JMS \ Serializer \

    • JMS \ SerializerBundle \ Serializer: Sie können Ihre Projekte, indem diese Ersatz (in dieser Reihenfolge) einstellen Dependency Injection -> JMS \ SerializerBundle \ Dependency Injection

    • Abhängigkeit Änderungen

    Möglicherweise müssen Sie die Versionen von jms/di-extra-bundle und jms/security-extra-bundle abhängig von Ihren Stabilitätseinstellungen erhöhen. Manchmal ist es auch notwendig, ein Composer-Update zweimal auszuführen, weil von einem Fehler in Composers Lösungsalgorithmus ist.