首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Symfony中将服务装饰器替换为自定义装饰器?

如何在Symfony中将服务装饰器替换为自定义装饰器?
EN

Stack Overflow用户
提问于 2019-10-06 10:57:30
回答 1查看 1K关注 0票数 0

在基于Symfony-4-Application Sylius的中,有一个服务装饰器放置在其核心中。

代码语言:javascript
复制
   <service id="sylius.order_item_quantity_modifier.limiting" class="Sylius\Component\Core\Cart\Modifier\LimitingOrderItemQuantityModifier" decorates="sylius.order_item_quantity_modifier" decoration-priority="256">
        <argument type="service" id="sylius.order_item_quantity_modifier.limiting.inner" />
        <argument>9999</argument>
    </service>

但是,我想在其服务定义中替换这个装饰器作为不想要硬编码的限制

我怎样才能换掉这个?

我试图围绕此服务装饰器定义服务装饰器,但由于某些原因它不适用:

代码语言:javascript
复制
app.core.cart.modifier:
    class: AppBundle\Component\Core\Cart\Modifier\MyLimitingOrderItemQuantityModifier
    decorates: sylius.order_item_quantity_modifier.limiting
    decoration_priority: 1000
    arguments:

我还试图用我自己的类替换它的service-id,它也没有工作:

代码语言:javascript
复制
   sylius.order_item_quantity_modifier.limiting:
        class: AppBundle\Component\Core\Cart\Modifier\MyLimitingOrderItemQuantityModifier
        decorates: sylius.order_item_quantity_modifier.limiting
        decoration_priority: 100
        arguments:
            - "@app.core.cart.modifier.inner"

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-07 08:14:13

您可以有2或3个选项:

  1. 假设您有您的装饰器,它以比sylius装饰器更高的优先级装饰基本服务,它的意思是:
代码语言:javascript
复制
- if you use the _XXXXXXX.inner_ injected service, instead of being the base service it will be the lower priority decorator : the **sylius decorator** in your case
- you could just decide to **not** use the _XXXXXXX.inner_ injected service and completely rewrite the function which is using the hard-coded value. It's not good for maintainability, but the way it's already done isn't either...  

  1. 您可以使用编译器传递来删除装饰器定义的,如果您想要使用另一个值,甚至替换硬编码的参数,或者使用参数:-) 有关该可以在这里找到的更多信息

我刚刚在sylius/sylius存储库上看到了您的问题,第二个解决方案可能是最好的(在内核更改时很容易删除)!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58256572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档