From 4ae61e913b54ade28f0a3e326fa96ff1c4f3bb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Tue, 18 Aug 2015 16:17:34 +0200 Subject: [PATCH] Update JMSSerializerServiceProvider to allow adding metadata_dirs --- .../Provider/JMSSerializerServiceProvider.php | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/Alchemy/Phrasea/Core/Provider/JMSSerializerServiceProvider.php b/lib/Alchemy/Phrasea/Core/Provider/JMSSerializerServiceProvider.php index c847461e81..e498653534 100644 --- a/lib/Alchemy/Phrasea/Core/Provider/JMSSerializerServiceProvider.php +++ b/lib/Alchemy/Phrasea/Core/Provider/JMSSerializerServiceProvider.php @@ -14,8 +14,6 @@ namespace Alchemy\Phrasea\Core\Provider; use Silex\Application; use Silex\ServiceProviderInterface; use JMS\Serializer\SerializerBuilder; -use Doctrine\Common\Annotations\AnnotationRegistry; -use Doctrine\Common\Annotations\AnnotationReader; class JMSSerializerServiceProvider implements ServiceProviderInterface { @@ -24,20 +22,20 @@ class JMSSerializerServiceProvider implements ServiceProviderInterface $app['serializer.cache-directory'] = $app->share(function () use ($app) { return $app['cache.path'].'/serializer/'; }); - - $app['serializer.src_directory'] = $app['root.path'] . '/vendor/jms/serializer/src/'; - - $app['serializer.metadata.annotation_reader'] = $app->share(function () use ($app) { - AnnotationRegistry::registerAutoloadNamespace("JMS\Serializer\Annotation", $app['serializer.src_directory']); - - return new AnnotationReader(); + $app['serializer.metadata_dirs'] = $app->share(function () { + return []; }); $app['serializer'] = $app->share(function (Application $app) { - return SerializerBuilder::create()->setCacheDir($app['serializer.cache-directory']) - ->setDebug($app['debug']) - ->setAnnotationReader($app['serializer.metadata.annotation_reader']) - ->build(); + $builder = SerializerBuilder::create() + ->setCacheDir($app['serializer.cache-directory']) + ->setDebug($app['debug']); + + if (!empty($app['serializer.metadata_dirs'])) { + $builder->addMetadataDirs($app['serializer.metadata_dirs']); + } + + return $builder->build(); }); }