5

Sto tentando di utilizzare ExclusionPolicy ma continuo a ricevere un errore "Annotazione inesistente o impossibile da caricare automaticamente".JMSSerializer e FOSRestBundle - Le annotazioni non funzionano. "Non esiste"

Ecco l'errore esatto essere buttato fuori:

[Errore semantica] L'annotazione "@JMS \ SerializerBundle \ annotazione \ ExclusionPolicy" in classe Acme \ DemoBundle \ Entity \ Attributi non esiste, o non può essere caricato automaticamente.

Il mio codice è il seguente:

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 
{ 
    ... 
} 

risposta

10

il problema è causato utilizzando lo spazio sbagliata.

Invece di:

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

Dovrebbe essere:

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

Avviso "Bundle" è andato. In Ver 0.11 è stato estratto nel proprio repository.

Il changelog è come segue:

  • namespace Modifiche

La libreria di base è stato estratto in un repository dedicato schmittjoh/serializer per facilitare riutilizzabile in qualsiasi tipo del progetto PHP , non solo nei progetti Symfony2. Ciò comporta diverse modifiche allo spazio dei nomi . È possibile regolare i vostri progetti per l'esecuzione di questi sostituzioni (in ordine):

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

  • Dipendenza Modifiche

Potrebbe essere necessario aumentare le versioni di jms/di-extra-bundle e anche jms/security-extra-bundle a seconda delle impostazioni di stabilità. A volte è anche necessario eseguire un aggiornamento del compositore due volte perché di un bug nell'algoritmo di risoluzione del compositore.