Добавление элементов в массив параметров Symfony2

1

У меня есть приложение Symfony2 (2.8.1) из многих пакетов. Я хотел бы иметь страницу "about", показывающую версию каждого пакета. Для этого я пытаюсь использовать массив параметров следующим образом:

revision:
  'bundle1':
    version: 1.0.0
    build: 42
  'bundle2':
    version: 1.2.0
    build: 4242

и так далее. Если я поместил все в один файл YAML, он будет работать. Вместо этого я хотел бы, чтобы каждый комплект определял его ревизию. Что-то вроде: файл параметров bundle1:

revision:
  'bundle1':
    version: 1.0.0
    build: 42

и файл параметров bundle2:

revision:
  'bundle2':
    version: 1.2.0
    build: 4242

Если я сделаю так, массив ревизий будет заполнен только значениями последнего включенного файла yaml. Есть ли способ "добавить" записи в массив параметров, определенный в разных файлах yaml? BR Стефано

Теги:
arrays
yaml
parameters

1 ответ

0

Я изменил подход и решил проблему. Вместо добавления информации о ревизии в конфигурацию я просто создаю файл Yaml в папке config каждого пакета. Затем я загружаю содержимое yaml файлов в массив, который будет использоваться на странице about.

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

    # first place to check is app config folder
    $kernel_root=$this->get('kernel')->getRootDir();
    $toLocate[]=$kernel_root.'/config';

    # then get config folder for each active bundle
    $kernel = $this->get('kernel');
    $configDirectories=$this->getParameter('kernel.bundles');
    foreach ($configDirectories as $bundleName => $configDirectory) {
        $toLocate[]= $kernel->locateResource('@'.$bundleName).'Resources/config';
    }

    # now get array of revision files
    $locator = new FileLocator($toLocate);
    $yamlRevFiles = $locator->locate('revision.yml', null, false);

    # and finally create array of date read from revision files
    $revs=array();
    foreach ($yamlRevFiles as $yamlRevFile) {
        $revs[]=Yaml::parse($yamlRevFile);
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню