mio config èJMS Serializer ignorato le mie esclusioni YML entità
jms_serializer:
metadata:
auto_detection: true
directories:
NameOfBundle:
namespace_prefix: ""
path: "@VendorNameOfBundle/Resources/config/serializer"
Il mio file YML chiamato Entity.Project.yml
contiene
Vendor\NameOfBundle\Entity\Project:
exclusion_policy: ALL
properties:
id:
expose: true
sto caricando il serializzatore in questo modo all'interno di un controller
$serializer = SerializerBuilder::create()
->configureListeners(function(EventDispatcher $dispatcher) {
$dispatcher->addSubscriber(new ProjectSubscriber($this->container));
})
->addDefaultListeners()
->build();
Questo ha completamente ignorato il mio file YML e espone tutti i campi dal Progetto. Ho cancellato la cache.
Ma se io uso questo, invece, senza l'abbonato personalizzato, quindi le esclusioni lavorano
$serializer = $this->get("jms_serializer");
Anche esplicitamente l'aggiunta di una directory non funziona neanche
$serializer = SerializerBuilder::create()
->configureListeners(function(EventDispatcher $dispatcher) {
$dispatcher->addSubscriber(new ProjectSubscriber($this->container));
})
->addDefaultListeners()
->addMetadataDir(realpath($this->get('kernel')->getRootDir()."/../") . '/src/Vendor/NameOfBundle/Resources/config/serializer')
->build();
I documenti non sono chiare su come questo il percorso dovrebbe essere limitato. Il metodo sopra non ha errori, ma non inserisce i file YML. Gli errori del metodo sottostante e dice che la directory non esiste;
$serializer = SerializerBuilder::create()
->configureListeners(function(EventDispatcher $dispatcher) {
$dispatcher->addSubscriber(new ProjectSubscriber($this->container));
})
->addDefaultListeners()
->addMetadataDir('@VendorNameOfBundle/Resources/config/serializer')
->build();
Come faccio a rendere il look JMS Serializzatore al mio file YML al fine di escludere i campi e utilizzare anche il server di sottoscrizione?
Ho anche provato, che, vedi la mia domanda modificata. L'aggiunta della dir non ha alcun effetto. Anche quando è la giusta dir. Sono completamente perso. –
@JakeN hm .. come vedo serializzatore JMS memorizza i dati e li legge, hai provato a svuotare la cache dell'ambiente di test? 'app php/console cache: clear -e test' –
Temo di sì, molte molte volte :-( –