Консольное приложение Yii2: как определить среду выполнения?

Скажем, у меня есть консольное приложение PHP Yii2, запускаемое в командной строке, например

/var/www/my_app/yii myconsole/action

Когда я развертываю приложение на своем рабочем сервере (запускаем как cronjob), у меня возникают проблемы с поиском элегантного способа определить, работает ли приложение на моем локальном компьютере или на рабочем сервере.

Если это веб-приложение, установка переменной среды в VirtualHost — отличное решение. Но для консольного приложения прямо сейчас я могу использовать функцию php_uname(), чтобы различать среду по имени машины, есть ли какие-нибудь лучшие идеи для этого?


person Jinsong Li    schedule 29.11.2015    source источник


Ответы (1)


См. официальную документацию по константам среды.

По сути, проверьте свой файл index.php, чтобы увидеть, какой YII_ENV определен, и затем вы можете вызвать его глобально.

Надеюсь, поможет!

person Jeffrey - Humanized    schedule 29.11.2015
comment
Вы правы, но консольное приложение по-прежнему имеет скрипт входа, где определена эта переменная. Вспомните, как вы запускаете консольные команды (yii something/something). Этот yii — ваш входной сценарий. - person Beowulfenator; 30.11.2015
comment
Да, мы можем определить константы в точке входа yii, но мне нужен способ, чтобы консольное приложение Yii автоматически определяло текущую среду и на основе этой обнаруженной среды устанавливало эти переменные. - person Jinsong Li; 01.12.2015
comment
Автоматически на основании чего? как Yii2 определит, какую среду вы используете? сценарий ввода yii эквивалентен index.php, и вы должны установить там переменную среды. Посмотрите расширенный шаблон и как настроены среды, index.php и yii не находятся в основном репозитории, но они устанавливаются с помощью php init. - person Mihai P.; 04.05.2016