2013-09-03 3 views
1

Я хочу зарегистрировать библиотеку поставщиков как услугу, такую ​​как доктрина, доступ к которой любой может получить через $container->get('doctrine'). Я хочу зарегистрировать таким образом других поставщиков, например PhpExcel ($container->get('phpexcel')).Symfony2 - зарегистрировать поставщика как услугу

ответ

1

См services.yml файл из liuggio/ExcelBundle

parameters: 
    xls.phpexcel.class: PHPExcel 

services: 
    xls.phpexcel: 
     class: %xls.phpexcel.class% 

А потом $container->get('xls.phpexcel');

+0

... и не забудьте удалить кеш-каталог вместо 'cache: clear' –

0

До тех пор, пока сторонние классы уважают DI, не создавая самих зависимостей, вы можете зарегистрировать их как службы так же, как и ваши собственные классы. Прочтите Service Container chapter, чтобы получить дополнительную информацию о том, как это сделать.

+0

Когда я создаю Bundle/Resources/Config/services.yml, и добавить строки: 'phpexcel: класс: PHPExcel \ PHPExcel', у меня есть ошибка: ' Class 'PHPExcel \ PHPExcel' not found'. Устанавливается через композитор, когда я создаю объект этого класса, все работает. –

+1

Вы уверены, что это не просто '\ PHPExcel'? –

0

Для этого вам следует использовать рабочий комплект. Найдите все пакеты для композитора at packagist.org. liuggio/ExcelBundle должен выполнять требуемую работу. После установки вы можете использовать PHPExcel в качестве услуги:

$excelService = $this->get('xls.service_xls5'); 
Смежные вопросы