В Symfony -4-приложении, основанном на Sylius , имеется сервисный декоратор, помещенный глубоко в их Core :
<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>
Однако я хочу заменить этот декоратор, поскольку я не хочу, чтобы это ограничение было жестко задано в его определении сервиса.
Как я могу заменить это?
Я пытался определить декоратор сервиса вокруг этого декоратора сервиса, но он не применяется по некоторым причинам:
app.core.cart.modifier:
class: AppBundle\Component\Core\Cart\Modifier\MyLimitingOrderItemQuantityModifier
decorates: sylius.order_item_quantity_modifier.limiting
decoration_priority: 1000
arguments:
Я также пытался заменить его идентификатор сервиса своим собственным классом, который не работалЛибо:
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"
Любая помощь высоко ценится!