Я на Symfony 2.7 и необходимо переопределить Symfony \ Component \ Asset \ UrlPackageSymfony: Игнорирование обслуживание Symfony (составитель передача)
Я смотрел на http://symfony.com/doc/current/cookbook/bundles/override.html и http://symfony.com/doc/current/cookbook/service_container/compiler_passes.html , но не может заставить его работать ,
Я создал файл в своем пакете MyApp \ CoreBundle \ Overrides \ UrlPackage; Я зарегистрировал UrlPackage в качестве сервиса и добавили функцию:
public function process(ContainerBuilder $container)
{
$definition = $container->getDefinition('assets.url_package');
$definition->setClass('MyApp\CoreBundle\Overrides\UrlPackage');
}
Странная вещь, если я позвоню $this->has('assets.url_package')
в любом контроллере, он возвращает ложь. я захватить его из файла услуги под Symfony:
<service id="assets.url_package" class="Symfony\Component\Asset\UrlPackage" abstract="true">
<argument /> <!-- base URLs -->
<argument type="service" /> <!-- version strategy -->
<argument type="service" id="assets.context" />
</service>
Если я бегу php app/console debug:container
, то UrlPackage из Symfony не там, но, если я что-то изменить в файле поставщика/*/UrlPackge, это делает работу
Может кто-нибудь указать мне в правильном направлении?
Это не должно быть необходимо использовать компилятор передает переопределить существующую услугу - определение услуг должно быть достаточно. Вы уверены, что используете правильный идентификатор службы? Я использую 2.6, и в этой версии это 'templating.asset.url_package'. – mickadoo
Да, они изменили это, все настройки templating.assets также устарели, активы теперь что-то на своем собственном, также urlpackage был параметром, который можно было бы перезаписать, теперь это не :(- http://symfony.com/блог/новый-в-Symfony-2-7-заместитель нового актива-компонента – Mazzy