33namespace FOS \ElasticaBundle \Serializer ;
44
55use JMS \Serializer \SerializationContext ;
6- use JMS \Serializer \SerializerInterface ;
6+ use Symfony \Component \Serializer \SerializerInterface ;
7+ use JMS \Serializer \SerializerInterface as JMSSerializer ;
78
89class Callback
910{
@@ -30,8 +31,8 @@ public function setGroups(array $groups)
3031 {
3132 $ this ->groups = $ groups ;
3233
33- if (!empty ($ this ->groups ) && !$ this ->serializer instanceof SerializerInterface) {
34- throw new \RuntimeException ('Setting serialization groups requires using "JMS\Serializer\Serializer". ' );
34+ if (!empty ($ this ->groups ) && !$ this ->serializer instanceof SerializerInterface && ! $ this -> serializer instanceof JMSSerializer ) {
35+ throw new \RuntimeException ('Setting serialization groups requires using "JMS\Serializer\Serializer" or "Symfony\Component\Serializer\Serializer" ' );
3536 }
3637 }
3738
@@ -42,7 +43,7 @@ public function setVersion($version)
4243 {
4344 $ this ->version = $ version ;
4445
45- if ($ this ->version && !$ this ->serializer instanceof SerializerInterface ) {
46+ if ($ this ->version && !$ this ->serializer instanceof JMSSerializer ) {
4647 throw new \RuntimeException ('Setting serialization version requires using "JMS\Serializer\Serializer". ' );
4748 }
4849 }
@@ -54,7 +55,7 @@ public function setSerializeNull($serializeNull)
5455 {
5556 $ this ->serializeNull = $ serializeNull ;
5657
57- if (true === $ this ->serializeNull && !$ this ->serializer instanceof SerializerInterface ) {
58+ if (true === $ this ->serializeNull && !$ this ->serializer instanceof JMSSerializer ) {
5859 throw new \RuntimeException ('Setting null value serialization option requires using "JMS\Serializer\Serializer". ' );
5960 }
6061 }
@@ -66,10 +67,14 @@ public function setSerializeNull($serializeNull)
6667 */
6768 public function serialize ($ object )
6869 {
69- $ context = $ this ->serializer instanceof SerializerInterface ? SerializationContext::create ()->enableMaxDepthChecks () : array ();
70+ $ context = $ this ->serializer instanceof JMSSerializer ? SerializationContext::create ()->enableMaxDepthChecks () : array ();
7071
7172 if (!empty ($ this ->groups )) {
72- $ context ->setGroups ($ this ->groups );
73+ if ($ context instanceof SerializationContext) {
74+ $ context ->setGroups ($ this ->groups );
75+ } else {
76+ $ context ['groups ' ] = $ this ->groups ;
77+ }
7378 }
7479
7580 if ($ this ->version ) {
0 commit comments