Как вы уже знаете из комментариев, assetic-bundle
устарела, и поэтому вы можете мигрировать на Symfony 4 без изменения определения сервиса.
Но, вообще говоря, если вы хотите переопределить внешнюю службуконфигурации, вы можете реализовать пользовательский CompilerPass
namespace AppBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class OverrideServiceCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$container->getDefinition('assetic.filter_manager')->setPublic(true);
$container->getDefinition('assetic.filter.cssrewrite')->setPublic(true);
}
}
и добавить его в свой пакет, как указано в официальной документации .
namespace AppBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use AppBundle\DependencyInjection\Compiler\OverrideServiceCompilerPass;
class AppBundle extends Bundle
{
public function build(ContainerBuilder $container)
{
parent::build($container);
$container->addCompilerPass(new OverrideServiceCompilerPass());
}
}
См. Документация по определению API .