Я пытаюсь переопределить некоторые услуги из раздела «поставщик». Следуя этому руководству https://symfony.com/doc/3.4/bundles/override.html Я сделал этот код
namespace AppBundle\DependencyInjection\Compiler;
use AppBundle\Service\Subscriber;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class OverrideServiceCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$definition = $container->getDefinition('MyOldService');
$definition->setClass(Subscriber::class); //my new service class
}
}
После того, как я создал класс подписчика в «AppBundle\Service\Subscriber» и попытался переопределить действие:
<?php
namespace AppBundle\Service;
class Subscriber
{
public function the_same_name_of_function_from_vendor()
{
dump('I am a new function!');die;
return new Response('ok');
}
}
Но ничего не произошло и symfony продолжает вызывать функцию из секции "vendor".
Как я могу правильно переопределить функцию?