Symfony 4, получить параметр .env от контроллера, возможно ли это и как?

В symfony 4 я хочу создать глобальный параметр и получить значение этого параметра от контроллера.

Этот параметр - путь к другому приложению на сервере. Итак, я подумал добавить параметр в файл .env. Но как я могу получить значение этого параметра от контроллера?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
14
0
28 707
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Вы пробовали:

$this->getParameter('your parameter');

Редактировать:

Это может вам помочь -> https://symfony.com/doc/current/components/dotenv.html

Спасибо за ответ :) Я добавил параметр foo в файл .env (foo = faa), я очистил кеши, но получаю «InvalidArgumentException: параметр 'foo' должен быть определен» в моем контроллере: /

matthieu lopez 03.09.2018 16:43

Отредактировал свой ответ

AnTrakS 03.09.2018 16:45

Да, я только что это видел! Любопытно, я подумал, что это нативный метод в Symfony!

matthieu lopez 03.09.2018 16:46

Я не очень знаком с Symfony, в Symfony 4 может быть собственный метод.

AnTrakS 03.09.2018 16:48

Перед тем, как использовать getParameter (), вы должны добавить это в services.yaml

parameters:
    your_parameter: '%env(your_parameter)%' # from .env file

Если кто-то все еще ищет быстрое исправление, но не очень похож на Symfonish,

определите свой параметр в .env

MY_PARAM='my param value'

а затем в контроллере назовите его

echo $_ENV['MY_PARAM'];

если вы вызываете переменную в контроллере, вам лучше определить ее в config/services.yaml в разделе parameters и получить к нему доступ через parameterBag - это гораздо более симфонический путь.

  1. Добавьте переменную в параметры конфигурации:
    parameters:
        your_variable: '%env(YOUR_ENV_VARIABLE)%'
  1. Получить его с контроллера
    $var = $this->getParameter('your_variable');

Для Symfony 5

в вашем файле .env

APP_PARAM=paramvaluehere

в вашем config/services.yaml

parameters:
    app.paramname: '%env(APP_PARAM)%'

в вашем контроллере

$this->getParameter('app.paramname');

Работает и в 4.3.

learner 07.05.2021 14:58

Другие вопросы по теме