如何在Symfony3中初始化JMS Serializer?

时间:2016-01-08 20:24:33

标签: php jmsserializerbundle symfony jms-serializer

我正在尝试将JMSSerializerBundle用于Symfony3(刚出来)。

这些是我在TestController.php

中加载的命名空间

use JMS\Serializer\Serializer; use JMS\Serializer\SerializerBuilder; use JMS\Serializer\SerializationContext;

我已经尝试$data = $this->get('jms_serializer')->serialize($data, 'json'); $data只是一个简单的对象,但是出现以下错误:

Attempted to call an undefined method named "get" of class "AppBundle\Controller\TestController"

我也尝试过网站$serializer = $container->get('jms_serializer');中的一个用法示例,但获得Notice: Undefined variable: container

我还是Symfony3及其捆绑包的新手,似乎无法找到有关symfony 3的JMS Serializer的任何文档

我可以像$serializer = SerializerBuilder::create()->build();这样初始化它,这允许我调用serialize方法,但我想知道正确的“symfony方式”。

如果有人能够提供一些知识,那就太棒了。谢谢!

1 个答案:

答案 0 :(得分:1)

为了在控制器中使用容器,您的控制器必须扩展Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller或至少 使用Symfony \ Component \ DependencyInjection \ ContainerAware,

无论如何你想在Symfony开始开发我建议你开始阅读错误信息,在这种特殊情况下你的错误非常明确。