Falls jemand wissen will wie es funktioniert. Die Lösung für das Problem ist im Contao Umfeld wohl nicht mit einem Decorator zu lösen sonder mit einem CompilerPass.
In der Bundle Datei:
PHP-Code:
class KptecLmBundle extends Bundle {
public function build(ContainerBuilder $container)
{
$container->addCompilerPass(new OverrideServiceCompilerPass());
}
}
und dann der CompilerPass selbst:
PHP-Code:
class OverrideServiceCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$defNewService = $container->getDefinition('lala.contao-com.listener.communication');
$defNewService ->setClass('Kptec\LmBundle\EventListener\ExtLalaCommunicationService');
}
}
Ein Service kann hierbei sowohl mittels eines Decorators dekoriert als auch wie ich das hier mache komplett extenden und ersetzen werden.
Lesezeichen