Загрузить конфигурацию в сервисах - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я работаю над проектом с пакетом, который мне нужно использовать в различных проектах.

Моя проблема: в моем сервисе никогда не загружается конфигурация.

Моя конфигурация выглядит примерно так, где-то в моем файле config.yml:

my_bundle:
    my_config:
        key1: value1
        key2: value2
        key3: value3

В файле расширения я загружаю его в свой сервис:

public function load(array $configs, ContainerBuilder $container)
{
    $configuration = new Configuration();
    $config = $this->processConfiguration($configuration, $configs);

    $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
    $loader->load('services.yml');

    $myService = $container->getDefinition(\MyBundle\Service\MyService::class);
    $myService->setArgument('$myConfig', $config['my_config']);
}

Я уже пытался установить пустой массив в качестве значения по умолчанию и использовать вместо него метод replaceArgument, но ничего лучше.

Файл скомпилированного контейнера выглядит так:

<?php

// Filename : getMyServiceService.php

use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;

return $this->services['MyBundle\Service\MyService'] = new \MyBundle\Service\MyService(
    ${($_ = isset($this->services['doctrine.orm.default_entity_manager']) ? $this->services['doctrine.orm.default_entity_manager'] : $this->load('getDoctrine_Orm_DefaultEntityManagerService.php')) && false ?: '_'},
    $this
);

В то время как файл services.yml моего пакета, загруженный в файл конфигурации, выглядит следующим образом:

services:
    _defaults:
        public: false

    MyBundle\Service\MyService:
        autowire: false
        autoconfigure: false
        arguments:
            $em: '@doctrine.orm.default_entity_manager'
            $container: '@service_container'

При добавлении аргумента $ myConfig и использовании «replaceArgument» в файле расширения служба загружается, но никогда не загружаются ожидаемые значения конфигурации.

Не знаю, изменился ли способ загрузки конфигурации в 3.x, но я не нашел ничего, указывающего, что я делаю это неправильно.

Спасибо за любой ответ.

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