瀏覽代碼

Added support for context creation inside twig.

{{ data|serialize('json', serialization_context().setGroups(['foo', 'bar'])) }}

{{ data|serialize('json', serialization_context().setVersion('1.0')) }}
Phil. A 12 年之前
父節點
當前提交
94e8de16d9
共有 1 個文件被更改,包括 18 次插入2 次删除
  1. 18 2
      src/JMS/Serializer/Twig/SerializerExtension.php

+ 18 - 2
src/JMS/Serializer/Twig/SerializerExtension.php

@@ -21,7 +21,6 @@ namespace JMS\Serializer\Twig;
 use JMS\Serializer\SerializerInterface;
 use JMS\Serializer\SerializationContext;
 
-
 /**
  * Serializer helper twig extension
  *
@@ -48,12 +47,29 @@ class SerializerExtension extends \Twig_Extension
         );
     }
 
+    public function getFunctions()
+    {
+        return array(
+            'serialization_context' => new \Twig_Function_Method($this, 'createContext'),
+        );
+    }
+
+    /**
+     * Creates the serialization context
+     *
+     * @return SerializationContext
+     */
+    public function createContext()
+    {
+        return SerializationContext::create();
+    }
+
     /**
      * @param object $object
      * @param string $type
      * @param SerializationContext $context
      */
-    public function serialize($object, $type = 'json', $context = null)
+    public function serialize($object, $type = 'json', SerializationContext $context = null)
     {
         return $this->serializer->serialize($object, $type, $context);
     }