Как связать ресурс из пакета в symfony2 config.yml - PullRequest
0 голосов
/ 03 ноября 2011

Используя эту конфигурацию, я могу успешно получить доступ к своему расширению ветки:

services:
  foo.twig.extension:
    class:  Bundle\HelloBundle\Extension\MyTwigExtension
    tags:
      -  { name: twig.extension }

Но теперь я хотел бы разместить это расширение из пакета и использовать его где угодно.Мне нужно что-то подобное: (следующий код не работает)

services:
  foo.twig.extension:
    class: "%kernel.root_dir%\Resources\Extension\MyTwigExtension
    tags:
      -  { name: twig.extension }

Есть идеи?

1 Ответ

0 голосов
/ 03 ноября 2011

Я думаю, вы можете поместить его в любой каталог, который обрабатывается автозагрузчиком (или вы можете добавить в автозагрузчик).

Другими словами, вы должны указать имя класса в конфигурации, а не путь к классу . Пока он автоматически загружается, он будет работать.

Например, вы можете поместить свои расширения в библиотеку с именем TwigExtensions в каталоге src / TwigExtensions :

services:
      foo.twig.extension:
        class: "TwigExtensions\Extension\MyTwigExtension
        tags:
          -  { name: twig.extension }

Таким образом, ваши расширения будут независимы от Symfony.

Хорошими примерами подобной настройки являются DoctrineExtensions и DoctrineExtensionsBundle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...