繁体   English   中英

如何在服务 xml 文件中添加序列化程序?

[英]How to add serializer in the services xml file?

我正在尝试在shopware 6中使用Serializer器组件我创建了一个串行器 Class,我想将其作为 DI 注入 controller 中。

串行器.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;
}

我的问题是如何在我的services.xml文件中包含这个序列化程序

<service id="SwagMasterApi\Core\Api\MyController" public="true">

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

任何人都可以帮忙。 谢谢。

您需要将 Serializer 定义为服务并将其作为参数注入 Controller。 例如,如果您的序列化程序的 FQCN 是SwagMasterApi\Service\Serializer 您需要将以下代码添加到您的服务中。xml

<service id="SwagMasterApi\Service\Serializer">
<service>

<service id="SwagMasterApi\Core\Api\MyController" public="true">
    <argument type="service" id="SwagMasterApi\Service\Serializer" />
<service>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM