Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
487 views
in Technique[技术] by (71.8m points)

symfony4 - How to add serializer in the services xml file?

I am trying to use Serializer Component in shopware 6 I have create a Serializer Class which I want to inject as DI in the controller.

Serializer.php

class Serializer
{
    public function getSerializer(): Serializer
    {
        $encoder = [new JsonEncoder()];
        $normalizer = [new ObjectNormalizer()];

        return new Serializer($normalizer, $encoder);
    }

}

MyController.php

public function __construct(Serializer $serializer)
{
    $this->serializer = $serializer;
}

My problem is how to include this serializer in my services.xml file

<service id="SwagMasterApiCoreApiMyController" public="true">

            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
<service>

Can anybody help. Thanks.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You need to define your Serializer as a service and inject it as an argument to Controller. For instance, if FQCN of your serializer is SwagMasterApiServiceSerializer. You need to add the following code into your services.xml

<service id="SwagMasterApiServiceSerializer">
<service>

<service id="SwagMasterApiCoreApiMyController" public="true">
    <argument type="service" id="SwagMasterApiServiceSerializer" />
<service>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...