Cześć,
PS Version: 8.1.6
Problem dotyczy tagowanych serwisów.
Zgodnie z dokumentacją: https://devdocs.prestashop-project.org/8/modules/concepts/services/
Do głównego pliku config/front/services.yml dołączyłem plik common.yml
imports:
- { resource: ../common.yml }
plik common.yml
services:
_defaults:
autowire: true
public: true
bind:
$productCalculator: !tagged ushop.calculator_type
_instanceof:
PrestaShop\Module\ushop\service\ProductTypeCalculator\ProductTypeCalculatorInterface:
tags: [ ushop.calculator_type ]
ushop.calculator_strategy:
autowire: true
public: true
autoconfigure: true
class: 'PrestaShop\Module\ushop\service\ProductCalculatorStrategy'
Pobieranie serwisu
$productCalculateStrategy = $this->get('ushop.service.product_calculator');
konstruktor serwisu
public function __construct(iterable $productCalculator) { foreach ($productCalculator as $iterated) { $this->productCalculators[] = $iterated; }
Serwis jest pobierany, ale żadne obiekty klas dziedziczących ProductTypeCalculatorInterface nie są wstrzykiwane do konstruktora - iterator jest pusty.
Próbowałem również manualnie stworzyć serwisy każdej z klas dziedziczących i otagowanie, jednakże nie zmienia to absolutnie niczego.
To nie działa ani na controllerach frontowych ani adminowych.
Gdzie może leżeć problem?