skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.

Как подставить значение предыдущего параметра в конфигурации бандла Symfony2?

Есть некий бандл, где нужно загружать файлы. В конфиге планирую хранить два пути - внешний путь до конкретной директории, куда будет сохраняться загруженный файл и внутренний путь до директории web. Из этих двух путей можно получить как полный внутренний путь для перемещения файла после загрузки, так и сгенерировать адрес для отображения в вебе.
В данный момент конфигурация выглядит примерно так:
some_bundle:
    xxx:
        title_image:
            web_root_path: /uploads/xxx
            upload_root_path: %kernel.root_dir%/../web%web_root_path%
            thumbnails:
                enabled: true
                width: 600
                height: 400

И на этом самом %web_root_path% как раз выбрасывается исключение:
ParameterNotFoundException: You have requested a non-existent parameter "web_root_path".

Пробовал указывать с "неймспейсом" как "%kernel.root_dir%": "%some_bundle.xxx.title_image.web_root_path%", но такой вариант тоже не работал.
Возможно ли вообще использование предыдущей ноды этого же уровня для подстановки значения? Или хранить оба пути и складывать их уже в коде?
  • Вопрос задан
  • 2413 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вам доступны только те параметры, которые зарегистрированы в DI на момент начала разбора конфига. То есть %kernel.root_dir% там доступен (как и кучи других параметров), а вот %web_root_path% вы уже сами в YourBundle/DependencyInjection/Extension должны зарегистрировать как параметр.

лучше указывайте полный путь куда сохранять, и путь к web_root отдельно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы